feature(helpers): add exit codes to update script

This commit is contained in:
Asif Bacchus 2021-07-27 18:28:09 -06:00
parent 16f302c3fd
commit f7a6d924d9

View File

@ -10,7 +10,7 @@
# functions # functions
errMsg() { errMsg() {
printf "\n%s%s%s\n\n" "$err" "$1" "$norm" printf "\n%s%s%s\n\n" "$err" "$1" "$norm"
exit 1 [ -n "$2" ] && exit "$2" || exit 1
} }
errNotify() { errNotify() {
@ -136,19 +136,19 @@ done
if [ "$doDockerUpdate" -eq 1 ]; then if [ "$doDockerUpdate" -eq 1 ]; then
# check if docker is installed # check if docker is installed
if ! command -v docker >/dev/null 2>&1; then if ! command -v docker >/dev/null 2>&1; then
errMsg "Sorry, it appears that docker is not installed on this machine! Exiting." errMsg "Sorry, it appears that docker is not installed on this machine! Exiting." 2
fi fi
# is user root or in the docker group? # is user root or in the docker group?
if [ ! "$(id -u)" -eq 0 ]; then if [ ! "$(id -u)" -eq 0 ]; then
if ! id -Gn | grep docker >/dev/null; then if ! id -Gn | grep docker >/dev/null; then
errMsg "You must either be root or in the 'docker' group to pull container updates." errMsg "You must either be root or in the 'docker' group to pull container updates." 2
fi fi
fi fi
printf "%s\n*** Updating %s container ***\n\n%s" "$info" "$containerName" "$norm" printf "%s\n*** Updating %s container ***\n\n%s" "$info" "$containerName" "$norm"
if ! docker pull "$containerUpdatePath"; then if ! docker pull "$containerUpdatePath"; then
errMsg "There was an error updating the container. Try again later." errMsg "There was an error updating the container. Try again later." 31
else else
okMsg "Container updated!" okMsg "Container updated!"
fi fi
@ -163,7 +163,7 @@ if [ "$doScriptUpdate" -eq 1 ]; then
printf "Getting latest checksums... " printf "Getting latest checksums... "
if ! wget --quiet --tries=3 --timeout=10 -N "${server}${checksumFilename}"; then if ! wget --quiet --tries=3 --timeout=10 -N "${server}${checksumFilename}"; then
errNotify errNotify
errMsg "Unable to download checksums. Try again later." errMsg "Unable to download checksums. Try again later." 41
else else
okNotify okNotify
fi fi
@ -182,7 +182,7 @@ if [ "$doScriptUpdate" -eq 1 ]; then
errNotify errNotify
# delete failed download as necessary # delete failed download as necessary
rm -f ./update.sh.tmp 2>/dev/null rm -f ./update.sh.tmp 2>/dev/null
errMsg "Unable to download script update. Try again later." errMsg "Unable to download script update. Try again later." 42
else else
# verify download # verify download
dlScriptChecksum=$(sha256sum "update.sh.tmp" | grep -o '^\S*') dlScriptChecksum=$(sha256sum "update.sh.tmp" | grep -o '^\S*')
@ -190,7 +190,7 @@ if [ "$doScriptUpdate" -eq 1 ]; then
printf "[ERROR]\n" printf "[ERROR]\n"
# delete corrupt download as necessary # delete corrupt download as necessary
rm -f ./update.sh.tmp 2>/dev/null rm -f ./update.sh.tmp 2>/dev/null
errMsg "Checksum mismatch! Try again later." errMsg "Checksum mismatch! Try again later." 42
else else
okNotify okNotify
printf "\n%s*** This script has been updated. Please re-run it to load the updated version of this file. ***%s\n\n" "$warn" "$norm" printf "\n%s*** This script has been updated. Please re-run it to load the updated version of this file. ***%s\n\n" "$warn" "$norm"
@ -255,4 +255,29 @@ if [ "$doScriptUpdate" -eq 1 ]; then
printf "\tUpdates: %s%s applied%s, %s%s failed%s\n" "$ok" "$updateSuccess" "$norm" "$err" "$updateFailed" "$norm" printf "\tUpdates: %s%s applied%s, %s%s failed%s\n" "$ok" "$updateSuccess" "$norm" "$err" "$updateFailed" "$norm"
fi fi
#
# exit
if [ "$downloadFailed" -gt 0 ]; then
exit 43
elif [ "$updateFailed" -gt 0 ]; then
exit 44
else
exit 0 exit 0
fi
# this is a trap for mis-coding... should never get an exit code 99!
exit 99
#
# exit return codes
# 0: normal exit, no errors
# 1: missing or invalid parameter
# 2: docker not found or no docker permissions
# 31: unable to update docker container
# 4x: helper files errors
# 41: unable to download checksums
# 42: update script: unable to download or bad checksum
# 43: update helpers: unable to download
# 44: update helpers: bad checksum, no update
# 99: coding mistake trap -- this return code should never happen!
#EOF