X-Git-Url: https://zdv2.bktei.com/gitweb/BK-2020-03.git/blobdiff_plain/65567c48842eff637270dd4b5783fa0ac4e19e85..d29fa44f0de3e015fe3c83b5e48164c344f1fc60:/unitproc/bktemp-checkAppFileDir diff --git a/unitproc/bktemp-checkAppFileDir b/unitproc/bktemp-checkAppFileDir index e6e11fe..3734685 100644 --- a/unitproc/bktemp-checkAppFileDir +++ b/unitproc/bktemp-checkAppFileDir @@ -1,14 +1,17 @@ #!/bin/bash +# Desc: Template to check that apps, files, or dirs exist. #==BEGIN Define script parameters== declare -Ag appRollCall # Associative array for storing app status declare -Ag fileRollCall # Associative array for storing file status declare -Ag dirRollCall # Associative array for storing dir status +#==END Define script parameters== #===BEGIN Declare local script functions=== checkapp() { # Desc: If arg is a command, save result in assoc array 'appRollCall' # Usage: checkapp arg1 arg2 arg3 ... + # Version: 0.1.0 # Input: global assoc. array 'appRollCall' # Output: adds/updates key(value) to global assoc array 'appRollCall' local returnState @@ -19,7 +22,7 @@ checkapp() { #===Process Args=== for arg in "$@"; do #echo "DEBUG:processing arg:$arg" - if command -v $arg 1>/dev/null 2>&1; then # Check if arg is a valid command + if command -v "$arg" 1>/dev/null 2>&1; then # Check if arg is a valid command appRollCall[$arg]="true"; #echo "DEBUG:appRollCall[$arg]:"${appRollCall[$arg]} if ! [ "$returnState" = "false" ]; then returnState="true"; fi @@ -43,6 +46,7 @@ checkapp() { checkfile() { # Desc: If arg is a file path, save result in assoc array 'fileRollCall' # Usage: checkfile arg1 arg2 arg3 ... + # Version: 0.1.0 # Input: global assoc. array 'fileRollCall' # Output: adds/updates key(value) to global assoc array 'fileRollCall'; # Output: returns 0 if app found, 1 otherwise @@ -75,6 +79,7 @@ checkfile() { checkdir() { # Desc: If arg is a dir path, save result in assoc array 'dirRollCall' # Usage: checkdir arg1 arg2 arg3 ... + # Version 0.1.0 # Input: global assoc. array 'dirRollCall' # Output: adds/updates key(value) to global assoc array 'dirRollCall'; # Output: returns 0 if app found, 1 otherwise @@ -104,68 +109,75 @@ checkdir() { return 1; fi } # Check that dir exists -#===END Declare local script functions=== -#==END Define script parameters== - -#==BEGIN sample code== -if checkapp cat; then echo "cat found."; fi -if checkapp gpg; then echo "gpg found."; fi -if checkapp emaaaacs; then echo "emaaaacs found."; fi -#==END sample code== - -#==BEGIN Display errors== -#===BEGIN Display Missing Apps=== -missingApps="Missing apps :" -#for key in "${!appRollCall[@]}"; do echo "DEBUG:$key => ${appRollCall[$key]}"; done -for key in "${!appRollCall[@]}"; do - value="${appRollCall[$key]}" - if [ "$value" = "false" ]; then - #echo "DEBUG:Missing apps: $key => $value"; - missingApps="$missingApps""$key " - appMissing="true" +displayMissing() { + # Desc: Displays missing apps, files, and dirs + # Usage: displayMissing + # Version 0.1.0 + # Input: associative arrays: appRollCall, fileRollCall, dirRollCall + # Output: stderr: messages indicating missing apps, file, or dirs + # Depends: bash 5, checkAppFileDir() + #==BEGIN Display errors== + #===BEGIN Display Missing Apps=== + missingApps="Missing apps :" + #for key in "${!appRollCall[@]}"; do echo "DEBUG:$key => ${appRollCall[$key]}"; done + for key in "${!appRollCall[@]}"; do + value="${appRollCall[$key]}" + if [ "$value" = "false" ]; then + #echo "DEBUG:Missing apps: $key => $value"; + missingApps="$missingApps""$key " + appMissing="true" + fi + done + if [ "$appMissing" = "true" ]; then # Only indicate if an app is missing. + echo "$missingApps" 1>&2; fi -done -if [ "$appMissing" = "true" ]; then # Only indicate if an app is missing. - echo "$missingApps" 1>&2; -fi -#===END Display Missing Apps=== + #===END Display Missing Apps=== -#===BEGIN Display Missing Files=== -missingFiles="Missing files:" -#for key in "${!fileRollCall[@]}"; do echo "DEBUG:$key => ${fileRollCall[$key]}"; done -for key in "${!fileRollCall[@]}"; do - value="${fileRollCall[$key]}" - if [ "$value" = "false" ]; then - #echo "DEBUG:Missing files: $key => $value"; - missingFiles="$missingFiles""$key " - fileMissing="true" + #===BEGIN Display Missing Files=== + missingFiles="Missing files:" + #for key in "${!fileRollCall[@]}"; do echo "DEBUG:$key => ${fileRollCall[$key]}"; done + for key in "${!fileRollCall[@]}"; do + value="${fileRollCall[$key]}" + if [ "$value" = "false" ]; then + #echo "DEBUG:Missing files: $key => $value"; + missingFiles="$missingFiles""$key " + fileMissing="true" + fi + done + if [ "$fileMissing" = "true" ]; then # Only indicate if an app is missing. + echo "$missingFiles" 1>&2; fi -done -if [ "$fileMissing" = "true" ]; then # Only indicate if an app is missing. - echo "$missingFiles" 1>&2; -fi -#===END Display Missing Files=== + #===END Display Missing Files=== -#===BEGIN Display Missing Directories=== -missingDirs="Missing dirs:" -#for key in "${!dirRollCall[@]}"; do echo "DEBUG:$key => ${dirRollCall[$key]}"; done -for key in "${!dirRollCall[@]}"; do - value="${dirRollCall[$key]}" - if [ "$value" = "false" ]; then - #echo "DEBUG:Missing dirs: $key => $value"; - missingDirs="$missingDirs""$key " - dirMissing="true" + #===BEGIN Display Missing Directories=== + missingDirs="Missing dirs:" + #for key in "${!dirRollCall[@]}"; do echo "DEBUG:$key => ${dirRollCall[$key]}"; done + for key in "${!dirRollCall[@]}"; do + value="${dirRollCall[$key]}" + if [ "$value" = "false" ]; then + #echo "DEBUG:Missing dirs: $key => $value"; + missingDirs="$missingDirs""$key " + dirMissing="true" + fi + done + if [ "$dirMissing" = "true" ]; then # Only indicate if an dir is missing. + echo "$missingDirs" 1>&2; fi -done -if [ "$dirMissing" = "true" ]; then # Only indicate if an dir is missing. - echo "$missingDirs" 1>&2; -fi -#===END Display Missing Directories=== + #===END Display Missing Directories=== + + #==END Display errors== +} # Display missing apps, files, dirs -#===BEGIN Display Failed Functions=== -if [ ${#failedFunctions} -gt 0 ]; then # Only indicate if an function failed. - echo "Failed functions:${failedFunctions[@]}" 1>&2; -fi -#===END Display Failed Functions=== +#===END Declare local script functions=== +#==END Define script parameters== + +#==BEGIN sample code== +if checkapp cat; then echo "cat found."; fi; +if checkapp gpg; then echo "gpg found."; fi; +if checkapp emaaaacs; then echo "emaaaacs found."; fi; +sleep 1; +displayMissing; +#==END sample code== -#==END Display errors== +# Author: Steven Baltaktei Sandoval +# License: GPLv3+