Compare commits
8 Commits
b4f8834d51
...
2427aa628b
Author | SHA1 | Date | |
---|---|---|---|
|
2427aa628b | ||
|
5478ac1565 | ||
|
809c04b4b3 | ||
|
81e0a6d91a | ||
|
514e24664c | ||
|
34d57d4553 | ||
|
394487fadb | ||
|
0a032cdae1 |
@ -8,12 +8,35 @@
|
|||||||
# https://git.asifbacchus.app/ab-docker/scripts/LICENSE
|
# https://git.asifbacchus.app/ab-docker/scripts/LICENSE
|
||||||
#
|
#
|
||||||
|
|
||||||
|
### functions
|
||||||
|
|
||||||
|
consoleError() {
|
||||||
|
printf "\n%s%s%s\n\n" "$err" "$2" "$norm"
|
||||||
|
exit "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
### text formatting presets
|
||||||
|
if command -v tput > /dev/null; then
|
||||||
|
cyan=$(tput setaf 6)
|
||||||
|
err=$(tput bold)$(tput setaf 1)
|
||||||
|
norm=$(tput sgr0)
|
||||||
|
ok=$(tput setaf 2)
|
||||||
|
yellow=$(tput setaf 11)
|
||||||
|
else
|
||||||
|
cyan=''
|
||||||
|
err=''
|
||||||
|
norm=''
|
||||||
|
ok=''
|
||||||
|
yellow=''
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
### pre-requisites
|
### pre-requisites
|
||||||
|
|
||||||
# check if wget is installed
|
# check if wget is installed
|
||||||
if ! command -v wget > /dev/null 2>&1; then
|
if ! command -v wget > /dev/null 2>&1; then
|
||||||
printf "\nSorry, this script requires that 'wget' is installed in order to automatically update files.\nExiting.\n\n"
|
consoleError '1' "Sorry, this script requires that 'wget' is installed in order to automatically update files."
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# is user root or in the docker group?
|
# is user root or in the docker group?
|
||||||
@ -32,36 +55,36 @@ updateSuccess=0
|
|||||||
|
|
||||||
# reference constants
|
# reference constants
|
||||||
containerName='ab-openldap'
|
containerName='ab-openldap'
|
||||||
containerUpdatePath='docker.asifbacchus.app/ldap/ab-openldap:latest'
|
containerUpdatePath="docker.asifbacchus.app/ldap/$containerName:latest"
|
||||||
serverPath="https://asifbacchus.app/public/$containerName/"
|
serverPath="https://asifbacchus.app/public/$containerName/"
|
||||||
checksumFilename='checksums.sha256'
|
checksumFilename='checksums.sha256'
|
||||||
|
|
||||||
# files to update
|
# files to update
|
||||||
scriptName='ab-openldap-update.sh'
|
scriptName="$containerName-update.sh"
|
||||||
updateFiles="ab-openldap-backup.params.template ab-openldap-backup.sh ab-openldap.params.template ab-openldap.sh"
|
updateFiles="$containerName-backup.params.template $containerName-backup.sh $containerName.params.template $containerName.sh"
|
||||||
|
|
||||||
printf "\nUpdating %s:\n" "$containerName"
|
printf "\n%sUpdating %s%s%s:%s\n" "$cyan" "$yellow" "$containerName" "$cyan" "$norm"
|
||||||
|
|
||||||
|
|
||||||
### update container
|
### update container
|
||||||
|
|
||||||
printf "updating container... "
|
printf "updating container... "
|
||||||
if ! docker pull "$containerUpdatePath"; then
|
if ! docker pull "$containerUpdatePath" > /dev/null 2>&1; then
|
||||||
printf "[ERROR]\n\n"
|
printf "%s[ERROR]\n\n" "$err"
|
||||||
printf "There was an error updating the container. Try again later.\n\n"
|
printf "There was a problem updating the container. Please try again later.%s\n\n" "$norm"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
printf "[OK]\n"
|
printf "%s[OK]%s\n" "$ok" "$norm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
### checksums
|
### checksums
|
||||||
printf "downloading latest checksums... "
|
printf "downloading latest checksums... "
|
||||||
if ! wget --quiet --tries=3 --timeout=10 -O "$checksumFilename" "$serverPath$checksumFilename"; then
|
if ! wget --quiet --tries=3 --timeout=10 -O "$checksumFilename" "$serverPath$checksumFilename"; then
|
||||||
printf "[ERROR]\n\n"
|
printf "%s[ERROR]\n\n" "$err"
|
||||||
printf "Unable to download updated checksums. Try again later.\n\n"
|
printf "Unable to download updated checksums. Please try again later.%s\n\n" "$norm"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
printf "[OK]\n"
|
printf "%s[OK]%s\n" "$ok" "$norm"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@ -74,25 +97,25 @@ if [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
|
|||||||
else
|
else
|
||||||
# download updated script
|
# download updated script
|
||||||
if ! wget --quiet --tries=3 --timeout=10 -O "$scriptName" "$serverPath$scriptName"; then
|
if ! wget --quiet --tries=3 --timeout=10 -O "$scriptName" "$serverPath$scriptName"; then
|
||||||
printf "[ERROR]\n\n"
|
printf "%s[ERROR]\n\n" "$err"
|
||||||
printf "Unable to download script update. Try again later.\n\n"
|
printf "Unable to download script update. Please try again later.%s\n\n" "$norm"
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
# verify download
|
# verify download
|
||||||
localScriptChecksum=$( sha256sum "$scriptName" | grep -o '^\S*' )
|
localScriptChecksum=$( sha256sum "$scriptName" | grep -o '^\S*' )
|
||||||
if ! [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
|
if ! [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
|
||||||
printf "[ERROR]\n"
|
printf "%s[ERROR]\n\n" "$err"
|
||||||
printf "Unable to verify checksum of updated script. Try again later.\n\n"
|
printf "Unable to verify checksum of updated script. Please try again later.%s\n\n" "$norm"
|
||||||
else
|
else
|
||||||
printf "[UPDATED]\n\n"
|
printf "%s[UPDATED]%s\n\n" "$ok" "$norm"
|
||||||
printf "*** This script has been updated. Please re-run it to load the updated version of this file. ***\n\n"
|
printf "%s*** This script has been updated. Please re-run it to load the updated version of this file. ***%s\n\n" "$yellow" "$norm"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## update files
|
## update files
|
||||||
set -- dummy $updateFiles
|
set -- dummy "$updateFiles"
|
||||||
shift
|
shift
|
||||||
for file; do
|
for file; do
|
||||||
printf "\nchecking '%s' for updates... " "$file"
|
printf "\nchecking '%s' for updates... " "$file"
|
||||||
@ -103,23 +126,23 @@ for file; do
|
|||||||
localFileChecksum=0
|
localFileChecksum=0
|
||||||
fi
|
fi
|
||||||
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
|
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
|
||||||
printf "[AVAILABLE]\n"
|
printf "%s[AVAILABLE]%s\n" "$yellow" "$norm"
|
||||||
updatesAvailable=$((updatesAvailable+1))
|
updatesAvailable=$((updatesAvailable+1))
|
||||||
# download update
|
# download update
|
||||||
printf "Downloading updated '%s'... " "$file"
|
printf "Downloading updated '%s'... " "$file"
|
||||||
if ! wget --quiet --tries=3 --timeout=10 -O "$file" "$serverPath$file"; then
|
if ! wget --quiet --tries=3 --timeout=10 -O "$file" "$serverPath$file"; then
|
||||||
printf "[ERROR]\n"
|
printf "%s[ERROR]%s\n\n" "$err" "$norm"
|
||||||
downloadFailed=$((downloadFailed+1))
|
downloadFailed=$((downloadFailed+1))
|
||||||
else
|
else
|
||||||
printf "[OK] "
|
printf "%s[OK] %s" "$ok" "$norm"
|
||||||
downloadSuccess=$((downloadSuccess+1))
|
downloadSuccess=$((downloadSuccess+1))
|
||||||
# verify download
|
# verify download
|
||||||
localFileChecksum=$( sha256sum "$file" | grep -o '^\S*' )
|
localFileChecksum=$( sha256sum "$file" | grep -o '^\S*' )
|
||||||
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
|
if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
|
||||||
printf "[INVALID]\n"
|
printf "%s[INVALID]%s\n" "$err" "$norm"
|
||||||
updateFailed=$((updateFailed+1))
|
updateFailed=$((updateFailed+1))
|
||||||
else
|
else
|
||||||
printf "[VERIFIED]\n"
|
printf "%s[VERIFIED]%s\n" "$ok" "$norm"
|
||||||
updateSuccess=$((updateSuccess+1))
|
updateSuccess=$((updateSuccess+1))
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -130,9 +153,9 @@ done
|
|||||||
|
|
||||||
|
|
||||||
### display results
|
### display results
|
||||||
printf "\nResults:\n"
|
printf "\n%sResults:%s\n" "$cyan" "$norm"
|
||||||
printf "\tUpdates: %s available\n" "$updatesAvailable"
|
printf "\tUpdates: %s available\n" "$updatesAvailable"
|
||||||
printf "\tDownloads: %s successful, %s failed\n" "$downloadSuccess" "$downloadFailed"
|
printf "\tDownloads: %s successful, %s%s failed%s\n" "$downloadSuccess" "$err" "$downloadFailed" "$norm"
|
||||||
printf "\tUpdates: %s applied, %s failed\n" "$updateSuccess" "$updateFailed"
|
printf "\tUpdates: %s applied, %s%s failed%s\n" "$updateSuccess" "$err" "$updateFailed" "$norm"
|
||||||
|
|
||||||
exit 0
|
exit 0
|
@ -1,5 +1,5 @@
|
|||||||
3a6178a07571c14e3036aeede7bfb5fa7982faf682b7b919d2f05dbf07e080da ab-openldap.sh
|
a4ff46220c20887c85dbd9f4cc3d455bddeb920701966693bc277fb0690e9272 ab-openldap-backup.params.template
|
||||||
7e49710a156a2722b7f2dbf92b4f3e4b51bcfbf97403b4698ad4ef0216eadef6 backup.sh
|
206d756846839c13574adef3acec9a9475e0212904bd44c336414160dfeb7bb1 ab-openldap-backup.sh
|
||||||
5f228bddbe83bbaa495ad4095a50778c865d3288179148829820b55d00511ca5 update.sh
|
a2ae75864833c517aa686bbef02cd22864f305a42013c02d44df0008e4f2995e ab-openldap.params.template
|
||||||
1be75b2ac18dbc7e7f9eeaedffac688d055435b170b00fadb5d5cb3b55398472 ab-openldap.params.template
|
c0d949a47ece205e8b9f31ec7376491a75a39865a3affba85b349982f5519297 ab-openldap.sh
|
||||||
407e732d110cd0dea8e257e22953931fc51237d7583a69722da3b1d7843f0738 backup.params.template
|
387c7f5c771f13eb6a0f46ecd0d9e12b74bf721020835bb9f51b6bd9a634d38e ab-openldap-update.sh
|
||||||
|
Loading…
Reference in New Issue
Block a user