style(helpers): reformat update script and bump version
This commit is contained in:
		
							parent
							
								
									4d5f3fa809
								
							
						
					
					
						commit
						03e0631964
					
				@ -1,83 +1,87 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### update script for ab-nginx container and utility scripts
 | 
					#
 | 
				
			||||||
# version 2.0.0
 | 
					# update script for ab-nginx container and utility scripts
 | 
				
			||||||
# script by Asif Bacchus
 | 
					#   version 2.1.0
 | 
				
			||||||
###
 | 
					#   script by Asif Bacchus
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 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
 | 
					    exit 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
errNotify() {
 | 
					errNotify() {
 | 
				
			||||||
  printf "%s[ERROR]%s\n" "$err" "$norm"
 | 
					    printf "%s[ERROR]%s\n" "$err" "$norm"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
okMsg() {
 | 
					okMsg() {
 | 
				
			||||||
  printf "%s%s%s\n\n" "$ok" "$1" "$norm"
 | 
					    printf "%s%s%s\n\n" "$ok" "$1" "$norm"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
okNotify() {
 | 
					okNotify() {
 | 
				
			||||||
  printf "%s[OK]%s\n" "$ok" "$norm"
 | 
					    printf "%s[OK]%s\n" "$ok" "$norm"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
scriptHelp() {
 | 
					scriptHelp() {
 | 
				
			||||||
  textNewline
 | 
					    textNewline
 | 
				
			||||||
  textblock "Update ${containerName} container and helper script files"
 | 
					    textBlock "Update ${containerName} container and helper script files"
 | 
				
			||||||
  textblock "${bold}Usage: ${localScriptName} [parameters]${norm}"
 | 
					    textBlock "${bold}Usage: ${localScriptName} [parameters]${norm}"
 | 
				
			||||||
  textNewline
 | 
					    textNewline
 | 
				
			||||||
  textblock "If run with no parameters, the script will update both the container and the helper script files, including this update script."
 | 
					    textBlock "If run with no parameters, the script will update both the container and the helper script files, including this update script."
 | 
				
			||||||
  textblockHeader " parameters "
 | 
					    textBlockHeader " parameters "
 | 
				
			||||||
  textblockParam "-h|-?|--help" "Display this help screen."
 | 
					    textBlockParam "-h|-?|--help" "Display this help screen."
 | 
				
			||||||
  textblockParam "-c|--container|--container-only" "Update the docker container only."
 | 
					    textBlockParam "-c|--container|--container-only" "Update the docker container only."
 | 
				
			||||||
  textblockParam "-s|--scripts|--scripts-only" "Update the helper scripts (including this update script) only."
 | 
					    textBlockParam "-s|--scripts|--scripts-only" "Update the helper scripts (including this update script) only."
 | 
				
			||||||
  textNewline
 | 
					    textNewline
 | 
				
			||||||
  exit 0
 | 
					    exit 0
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
textblock() {
 | 
					textBlock() {
 | 
				
			||||||
  printf "%s\n" "$1" | fold -w "$width" -s
 | 
					    printf "%s\n" "$1" | fold -w "$width" -s
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
textblockHeader() {
 | 
					textBlockHeader() {
 | 
				
			||||||
  printf "\n%s***%s***%s\n" "$header" "$1" "$norm"
 | 
					    printf "\n%s***%s***%s\n" "$header" "$1" "$norm"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
textblockParam() {
 | 
					textBlockParam() {
 | 
				
			||||||
  printf "%s%-35s%s%s\n" "$info" "$1" "$2" "$norm"
 | 
					    printf "%s%-35s%s%s\n" "$info" "$1" "$2" "$norm"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
textNewline() {
 | 
					textNewline() {
 | 
				
			||||||
  printf "\n"
 | 
					    printf "\n"
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### text formatting presets
 | 
					#
 | 
				
			||||||
 | 
					# text formatting presets
 | 
				
			||||||
if command -v tput >/dev/null 2>&1; then
 | 
					if command -v tput >/dev/null 2>&1; then
 | 
				
			||||||
  bold=$(tput bold)
 | 
					    bold=$(tput bold)
 | 
				
			||||||
  err=$(tput bold)$(tput setaf 1)
 | 
					    err=$(tput bold)$(tput setaf 1)
 | 
				
			||||||
  info=$(tput bold)$(tput setaf 6)
 | 
					    info=$(tput bold)$(tput setaf 6)
 | 
				
			||||||
  header=$(tput bold)$(tput setaf 5)
 | 
					    header=$(tput bold)$(tput setaf 5)
 | 
				
			||||||
  norm=$(tput sgr0)
 | 
					    norm=$(tput sgr0)
 | 
				
			||||||
  ok=$(tput sgr0)$(tput setaf 2)
 | 
					    ok=$(tput sgr0)$(tput setaf 2)
 | 
				
			||||||
  warn=$(tput bold)$(tput setaf 3)
 | 
					    warn=$(tput bold)$(tput setaf 3)
 | 
				
			||||||
  width=$(tput cols)
 | 
					    width=$(tput cols)
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
  bold=''
 | 
					    bold=''
 | 
				
			||||||
  err=''
 | 
					    err=''
 | 
				
			||||||
  info=''
 | 
					    info=''
 | 
				
			||||||
  header=''
 | 
					    header=''
 | 
				
			||||||
  norm=''
 | 
					    norm=''
 | 
				
			||||||
  ok=''
 | 
					    ok=''
 | 
				
			||||||
  warn=''
 | 
					    warn=''
 | 
				
			||||||
  width=80
 | 
					    width=80
 | 
				
			||||||
fi
 | 
					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
 | 
				
			||||||
  errMsg "Sorry, this script requires that 'wget' is installed in order to download updates. Exiting."
 | 
					    errMsg "Sorry, this script requires that 'wget' is installed in order to download updates. Exiting."
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# zero counters
 | 
					# zero counters
 | 
				
			||||||
@ -102,149 +106,153 @@ doScriptUpdate=1
 | 
				
			|||||||
localScriptName="$(basename "$0")"
 | 
					localScriptName="$(basename "$0")"
 | 
				
			||||||
repoScriptName='update.sh'
 | 
					repoScriptName='update.sh'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### process startup parameters
 | 
					#
 | 
				
			||||||
 | 
					# process startup parameters
 | 
				
			||||||
while [ $# -gt 0 ]; do
 | 
					while [ $# -gt 0 ]; do
 | 
				
			||||||
  case "$1" in
 | 
					    case "$1" in
 | 
				
			||||||
  -h | -\? | --help)
 | 
					    -h | -\? | --help)
 | 
				
			||||||
    # display inline help
 | 
					        # display inline help
 | 
				
			||||||
    scriptHelp
 | 
					        scriptHelp
 | 
				
			||||||
    ;;
 | 
					        ;;
 | 
				
			||||||
  -s | --scripts | --scripts-only)
 | 
					    -s | --scripts | --scripts-only)
 | 
				
			||||||
    # update scripts only, skip docker container update
 | 
					        # update scripts only, skip docker container update
 | 
				
			||||||
    doDockerUpdate=0
 | 
					        doDockerUpdate=0
 | 
				
			||||||
    ;;
 | 
					        ;;
 | 
				
			||||||
  -c | --container | --container-only)
 | 
					    -c | --container | --container-only)
 | 
				
			||||||
    # update docker container only, skip script update
 | 
					        # update docker container only, skip script update
 | 
				
			||||||
    doScriptUpdate=0
 | 
					        doScriptUpdate=0
 | 
				
			||||||
    ;;
 | 
					        ;;
 | 
				
			||||||
  *)
 | 
					    *)
 | 
				
			||||||
    printf "%s\nUnknown option: %s\n" "$err" "$1"
 | 
					        printf "%s\nUnknown option: %s\n" "$err" "$1"
 | 
				
			||||||
    printf "%sUse '--help' for valid options%s\n\n" "$info" "$norm"
 | 
					        printf "%sUse '--help' for valid options%s\n\n" "$info" "$norm"
 | 
				
			||||||
    exit 1
 | 
					        exit 1
 | 
				
			||||||
    ;;
 | 
					        ;;
 | 
				
			||||||
  esac
 | 
					    esac
 | 
				
			||||||
  shift
 | 
					    shift
 | 
				
			||||||
done
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### update container
 | 
					#
 | 
				
			||||||
 | 
					# update container
 | 
				
			||||||
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."
 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # is user root or in the docker group?
 | 
					 | 
				
			||||||
  if [ ! "$(id -u)" -eq 0 ]; then
 | 
					 | 
				
			||||||
    if ! id -Gn | grep docker >/dev/null; then
 | 
					 | 
				
			||||||
      errMsg "You must either be root or in the 'docker' group to pull container updates."
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  printf "%s\n*** Updating %s container ***\n\n%s" "$info" "$containerName" "$norm"
 | 
					 | 
				
			||||||
  if ! docker pull "$containerUpdatePath"; then
 | 
					 | 
				
			||||||
    errMsg "There was an error updating the container. Try again later."
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    okMsg "Container updated!"
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
### update scripts
 | 
					 | 
				
			||||||
if [ "$doScriptUpdate" -eq 1 ]; then
 | 
					 | 
				
			||||||
  printf "%s*** Updating %s service scripts ***%s\n" "$info" "$containerName" "$norm"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ## download latest checksums
 | 
					 | 
				
			||||||
  printf "Getting latest checksums... "
 | 
					 | 
				
			||||||
  if ! wget --quiet --tries=3 --timeout=10 -N "${server}${checksumFilename}"; then
 | 
					 | 
				
			||||||
    errNotify
 | 
					 | 
				
			||||||
    errMsg "Unable to download checksums. Try again later."
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    okNotify
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ## check for updates to this script
 | 
					 | 
				
			||||||
  printf "Checking for updates to this script... "
 | 
					 | 
				
			||||||
  repoScriptChecksum=$(grep "$repoScriptName" "$checksumFilename" | grep -o '^\S*')
 | 
					 | 
				
			||||||
  localScriptChecksum=$(sha256sum "$localScriptName" | grep -o '^\S*')
 | 
					 | 
				
			||||||
  if [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
 | 
					 | 
				
			||||||
    printf "[NONE]\n"
 | 
					 | 
				
			||||||
  else
 | 
					 | 
				
			||||||
    printf "[AVAILABLE]\n"
 | 
					 | 
				
			||||||
    printf "Getting updated script... "
 | 
					 | 
				
			||||||
    # download updated script
 | 
					 | 
				
			||||||
    if ! wget --quiet --tries=3 --timeout=10 -O "update.sh.tmp" "${server}${repoScriptName}"; then
 | 
					 | 
				
			||||||
      errNotify
 | 
					 | 
				
			||||||
      # delete failed download as necessary
 | 
					 | 
				
			||||||
      rm -f ./update.sh.tmp 2>/dev/null
 | 
					 | 
				
			||||||
      errMsg "Unable to download script update. Try again later."
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      # verify download
 | 
					 | 
				
			||||||
      dlScriptChecksum=$(sha256sum "update.sh.tmp" | grep -o '^\S*')
 | 
					 | 
				
			||||||
      if ! [ "$dlScriptChecksum" = "$repoScriptChecksum" ]; then
 | 
					 | 
				
			||||||
        printf "[ERROR]\n"
 | 
					 | 
				
			||||||
        # delete corrupt download as necessary
 | 
					 | 
				
			||||||
        rm -f ./update.sh.tmp 2>/dev/null
 | 
					 | 
				
			||||||
        errMsg "Checksum mismatch! Try again later."
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        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"
 | 
					 | 
				
			||||||
        # overwrite this script with updated script
 | 
					 | 
				
			||||||
        mv -f ./update.sh.tmp "$localScriptName"
 | 
					 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    fi
 | 
					 | 
				
			||||||
  fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ## update files
 | 
					 | 
				
			||||||
  while IFS='  ' read -r field1 field2; do
 | 
					 | 
				
			||||||
    printf "\nChecking '%s' for updates... " "$field2"
 | 
					 | 
				
			||||||
    updateFilename="$field2"
 | 
					 | 
				
			||||||
    repoFileChecksum="$field1"
 | 
					 | 
				
			||||||
    if [ -f "$updateFilename" ]; then
 | 
					 | 
				
			||||||
      localFileChecksum=$(sha256sum "$updateFilename" | grep -o '^\S*')
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      localFileChecksum=0
 | 
					 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # update file if necessary
 | 
					    # is user root or in the docker group?
 | 
				
			||||||
    if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
 | 
					    if [ ! "$(id -u)" -eq 0 ]; then
 | 
				
			||||||
      printf "[AVAILABLE]\n"
 | 
					        if ! id -Gn | grep docker >/dev/null; then
 | 
				
			||||||
      updatesAvailable=$((updatesAvailable + 1))
 | 
					            errMsg "You must either be root or in the 'docker' group to pull container updates."
 | 
				
			||||||
      # download update
 | 
					 | 
				
			||||||
      printf "Downloading updated '%s'... " "$updateFilename"
 | 
					 | 
				
			||||||
      if ! wget --quiet --tries=3 --timeout=10 -O "$updateFilename.tmp" "${server}${updateFilename}"; then
 | 
					 | 
				
			||||||
        errNotify
 | 
					 | 
				
			||||||
        downloadFailed=$((downloadFailed + 1))
 | 
					 | 
				
			||||||
        # delete failed download file as necessary
 | 
					 | 
				
			||||||
        rm -f "$updateFilename.tmp" 2>&1
 | 
					 | 
				
			||||||
      else
 | 
					 | 
				
			||||||
        okNotify
 | 
					 | 
				
			||||||
        downloadSuccess=$((downloadSuccess + 1))
 | 
					 | 
				
			||||||
        # verify download
 | 
					 | 
				
			||||||
        printf "Verifying '%s'... " "$updateFilename"
 | 
					 | 
				
			||||||
        localFileChecksum=$(sha256sum "$updateFilename.tmp" | grep -o '^\S*')
 | 
					 | 
				
			||||||
        if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
 | 
					 | 
				
			||||||
          errNotify
 | 
					 | 
				
			||||||
          updateFailed=$((updateFailed + 1))
 | 
					 | 
				
			||||||
          # delete corrupted download file as necessary
 | 
					 | 
				
			||||||
          rm -f "$updateFilename.tmp" 2>&1
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
          okNotify
 | 
					 | 
				
			||||||
          updateSuccess=$((updateSuccess + 1))
 | 
					 | 
				
			||||||
          # overwrite old version of file
 | 
					 | 
				
			||||||
          mv -f "$updateFilename.tmp" "$updateFilename"
 | 
					 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
      fi
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      printf "[NONE]\n"
 | 
					 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
  done <"$checksumFilename"
 | 
					
 | 
				
			||||||
 | 
					    printf "%s\n*** Updating %s container ***\n\n%s" "$info" "$containerName" "$norm"
 | 
				
			||||||
 | 
					    if ! docker pull "$containerUpdatePath"; then
 | 
				
			||||||
 | 
					        errMsg "There was an error updating the container. Try again later."
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        okMsg "Container updated!"
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### display results
 | 
					#
 | 
				
			||||||
 | 
					# update scripts
 | 
				
			||||||
if [ "$doScriptUpdate" -eq 1 ]; then
 | 
					if [ "$doScriptUpdate" -eq 1 ]; then
 | 
				
			||||||
  printf "\n%s*** Results ***%s\n" "$info" "$norm"
 | 
					    printf "%s*** Updating %s service scripts ***%s\n" "$info" "$containerName" "$norm"
 | 
				
			||||||
  printf "\tUpdates: %s available\n" "$updatesAvailable"
 | 
					
 | 
				
			||||||
  printf "\tDownloads: %s%s successful%s, %s%s failed%s\n" "$ok" "$downloadSuccess" "$norm" "$err" "$downloadFailed" "$norm"
 | 
					    ## download latest checksums
 | 
				
			||||||
  printf "\tUpdates: %s%s applied%s, %s%s failed%s\n" "$ok" "$updateSuccess" "$norm" "$err" "$updateFailed" "$norm"
 | 
					    printf "Getting latest checksums... "
 | 
				
			||||||
 | 
					    if ! wget --quiet --tries=3 --timeout=10 -N "${server}${checksumFilename}"; then
 | 
				
			||||||
 | 
					        errNotify
 | 
				
			||||||
 | 
					        errMsg "Unable to download checksums. Try again later."
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        okNotify
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## check for updates to this script
 | 
				
			||||||
 | 
					    printf "Checking for updates to this script... "
 | 
				
			||||||
 | 
					    repoScriptChecksum=$(grep "$repoScriptName" "$checksumFilename" | grep -o '^\S*')
 | 
				
			||||||
 | 
					    localScriptChecksum=$(sha256sum "$localScriptName" | grep -o '^\S*')
 | 
				
			||||||
 | 
					    if [ "$localScriptChecksum" = "$repoScriptChecksum" ]; then
 | 
				
			||||||
 | 
					        printf "[NONE]\n"
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					        printf "[AVAILABLE]\n"
 | 
				
			||||||
 | 
					        printf "Getting updated script... "
 | 
				
			||||||
 | 
					        # download updated script
 | 
				
			||||||
 | 
					        if ! wget --quiet --tries=3 --timeout=10 -O "update.sh.tmp" "${server}${repoScriptName}"; then
 | 
				
			||||||
 | 
					            errNotify
 | 
				
			||||||
 | 
					            # delete failed download as necessary
 | 
				
			||||||
 | 
					            rm -f ./update.sh.tmp 2>/dev/null
 | 
				
			||||||
 | 
					            errMsg "Unable to download script update. Try again later."
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            # verify download
 | 
				
			||||||
 | 
					            dlScriptChecksum=$(sha256sum "update.sh.tmp" | grep -o '^\S*')
 | 
				
			||||||
 | 
					            if ! [ "$dlScriptChecksum" = "$repoScriptChecksum" ]; then
 | 
				
			||||||
 | 
					                printf "[ERROR]\n"
 | 
				
			||||||
 | 
					                # delete corrupt download as necessary
 | 
				
			||||||
 | 
					                rm -f ./update.sh.tmp 2>/dev/null
 | 
				
			||||||
 | 
					                errMsg "Checksum mismatch! Try again later."
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                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"
 | 
				
			||||||
 | 
					                # overwrite this script with updated script
 | 
				
			||||||
 | 
					                mv -f ./update.sh.tmp "$localScriptName"
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    ## update files
 | 
				
			||||||
 | 
					    while IFS='  ' read -r field1 field2; do
 | 
				
			||||||
 | 
					        printf "\nChecking '%s' for updates... " "$field2"
 | 
				
			||||||
 | 
					        updateFilename="$field2"
 | 
				
			||||||
 | 
					        repoFileChecksum="$field1"
 | 
				
			||||||
 | 
					        if [ -f "$updateFilename" ]; then
 | 
				
			||||||
 | 
					            localFileChecksum=$(sha256sum "$updateFilename" | grep -o '^\S*')
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            localFileChecksum=0
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        # update file if necessary
 | 
				
			||||||
 | 
					        if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
 | 
				
			||||||
 | 
					            printf "[AVAILABLE]\n"
 | 
				
			||||||
 | 
					            updatesAvailable=$((updatesAvailable + 1))
 | 
				
			||||||
 | 
					            # download update
 | 
				
			||||||
 | 
					            printf "Downloading updated '%s'... " "$updateFilename"
 | 
				
			||||||
 | 
					            if ! wget --quiet --tries=3 --timeout=10 -O "$updateFilename.tmp" "${server}${updateFilename}"; then
 | 
				
			||||||
 | 
					                errNotify
 | 
				
			||||||
 | 
					                downloadFailed=$((downloadFailed + 1))
 | 
				
			||||||
 | 
					                # delete failed download file as necessary
 | 
				
			||||||
 | 
					                rm -f "$updateFilename.tmp" 2>&1
 | 
				
			||||||
 | 
					            else
 | 
				
			||||||
 | 
					                okNotify
 | 
				
			||||||
 | 
					                downloadSuccess=$((downloadSuccess + 1))
 | 
				
			||||||
 | 
					                # verify download
 | 
				
			||||||
 | 
					                printf "Verifying '%s'... " "$updateFilename"
 | 
				
			||||||
 | 
					                localFileChecksum=$(sha256sum "$updateFilename.tmp" | grep -o '^\S*')
 | 
				
			||||||
 | 
					                if ! [ "$localFileChecksum" = "$repoFileChecksum" ]; then
 | 
				
			||||||
 | 
					                    errNotify
 | 
				
			||||||
 | 
					                    updateFailed=$((updateFailed + 1))
 | 
				
			||||||
 | 
					                    # delete corrupted download file as necessary
 | 
				
			||||||
 | 
					                    rm -f "$updateFilename.tmp" 2>&1
 | 
				
			||||||
 | 
					                else
 | 
				
			||||||
 | 
					                    okNotify
 | 
				
			||||||
 | 
					                    updateSuccess=$((updateSuccess + 1))
 | 
				
			||||||
 | 
					                    # overwrite old version of file
 | 
				
			||||||
 | 
					                    mv -f "$updateFilename.tmp" "$updateFilename"
 | 
				
			||||||
 | 
					                fi
 | 
				
			||||||
 | 
					            fi
 | 
				
			||||||
 | 
					        else
 | 
				
			||||||
 | 
					            printf "[NONE]\n"
 | 
				
			||||||
 | 
					        fi
 | 
				
			||||||
 | 
					    done <"$checksumFilename"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# display results
 | 
				
			||||||
 | 
					if [ "$doScriptUpdate" -eq 1 ]; then
 | 
				
			||||||
 | 
					    printf "\n%s*** Results ***%s\n" "$info" "$norm"
 | 
				
			||||||
 | 
					    printf "\tUpdates: %s available\n" "$updatesAvailable"
 | 
				
			||||||
 | 
					    printf "\tDownloads: %s%s successful%s, %s%s failed%s\n" "$ok" "$downloadSuccess" "$norm" "$err" "$downloadFailed" "$norm"
 | 
				
			||||||
 | 
					    printf "\tUpdates: %s%s applied%s, %s%s failed%s\n" "$ok" "$updateSuccess" "$norm" "$err" "$updateFailed" "$norm"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exit 0
 | 
					exit 0
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user