|
| 1 | +#!/bin/sh |
| 2 | + |
| 3 | +SQLITE_ZIP_URL='https://www.sqlite.org/2021/sqlite-amalgamation-3370000.zip' |
| 4 | +SQLite_compressor='upx' # Programm to use for compressing compiled sqlite |
| 5 | + # Keep it empty as "" to disable compression |
| 6 | + |
| 7 | +DockerImage='static-sqlite' |
| 8 | + |
| 9 | +### No user intervention below this point ###################################### |
| 10 | + |
| 11 | +onErr(){ |
| 12 | + local msg errNum |
| 13 | + msg="${1}" |
| 14 | + errNum=$2 |
| 15 | + printf "Error[%i]: %s\n" ${errNum} "${msg}" |
| 16 | + exit 1 |
| 17 | +} |
| 18 | + |
| 19 | +errMsgDep="Cannot continue due to absents of required dependancy" |
| 20 | + |
| 21 | +ID=$(type id); [ $? -eq 0 ] && ID="/${ID#*/}" || onErr "${errMsgDep}" 1 |
| 22 | + |
| 23 | +if [ $($ID -u) -eq 0 ]; then |
| 24 | + SUDO='' |
| 25 | +else |
| 26 | + SUDO=$(type sudo); [ $? -eq 0 ] && SUDO="/${SUDO#*/}" || SUDO='' |
| 27 | +fi |
| 28 | + |
| 29 | +DOCKER=$(type docker); |
| 30 | +[ $? -eq 0 ] && DOCKER="/${DOCKER#*/}" || onErr "Install please docker first..." 2 |
| 31 | + |
| 32 | +$SUDO $DOCKER version >/dev/null 2>&1 |
| 33 | +[ $? -ne 0 ] && { |
| 34 | + errMsg="$(printf '\n You are not authorized to run docker,')" |
| 35 | + errMsg="${errMsg}$(printf '\n try to "su -" into root account and try again.\n\n')" |
| 36 | + onErr "${errMsg}" 3 |
| 37 | +} |
| 38 | + |
| 39 | + |
| 40 | + |
| 41 | +cd ./docker |
| 42 | + |
| 43 | +#$SUDO $DOCKER build --no-cache -t static-sqlite . \ |
| 44 | +$SUDO $DOCKER build --rm -t "${DockerImage}" . \ |
| 45 | + --build-arg URL_SQLITE_SOURCE_ZIP="${SQLITE_ZIP_URL}" \ |
| 46 | + --build-arg COMPRESS_SQLITE3="${SQLite_compressor}" |
| 47 | +cd .. |
| 48 | + |
| 49 | +printf "\n\n===== Taking ready to use static sqlite3 =======================================\n\n" |
| 50 | + |
| 51 | +arch="${SQLITE_ZIP_URL##*/}" |
| 52 | +workdir="${arch%.*}" |
| 53 | + |
| 54 | +[ ! -d release ] && mkdir release |
| 55 | + |
| 56 | +$SUDO $DOCKER run --rm -v $(pwd)/release:/release/ \ |
| 57 | + -it "${DockerImage}" \ |
| 58 | + cp -fv /app/${workdir}/sqlite3 /release/ |
| 59 | + |
| 60 | +$SUDO $DOCKER stop "${DockerImage}" |
| 61 | + |
| 62 | +cd release |
| 63 | +echo "==============================" |
| 64 | +ldd sqlite3 |
| 65 | +echo "------------------------------" |
| 66 | +file sqlite3 |
| 67 | +echo "------------------------------" |
| 68 | +echo '.version' | ./sqlite3 |
| 69 | +echo "==============================" |
| 70 | + |
| 71 | +cd .. |
| 72 | + |
| 73 | +# Cleanup the built image |
| 74 | +$SUDO $DOCKER image rm "${DockerImage}" >/dev/null 2>&1 |
| 75 | + |
0 commit comments