]>
zdv2.bktei.com Git - BK-2020-03.git/blob - unitproc/bktemp-checkAppFileDir
   3 # Desc: Template to check that apps, files, or dirs exist. 
   4 # Author: Steven Baltaktei Sandoval 
   7 #==BEGIN Define script parameters== 
   8 declare -Ag appRollCall 
# Associative array for storing app status 
   9 declare -Ag fileRollCall 
# Associative array for storing file status 
  10 declare -Ag dirRollCall 
# Associative array for storing dir status 
  12 #===BEGIN Declare local script functions=== 
  14     # Desc: If arg is a command, save result in assoc array 'appRollCall' 
  15     # Usage: checkapp arg1 arg2 arg3 ... 
  16     # Input: global assoc. array 'appRollCall' 
  17     # Output: adds/updates key(value) to global assoc array 'appRollCall' 
  19     #echo "DEBUG:$(date +%S.%N)..Starting checkapp function." 
  20     #echo "DEBUG:args: $@" 
  21     #echo "DEBUG:returnState:$returnState" 
  25         #echo "DEBUG:processing arg:$arg" 
  26         if command -v $arg 1>/dev
/null 
2>&1; then # Check if arg is a valid command 
  27             appRollCall
[$arg]="true"; 
  28             #echo "DEBUG:appRollCall[$arg]:"${appRollCall[$arg]} 
  29             if ! [ "$returnState" = "false" ]; then returnState
="true"; fi 
  31             appRollCall
[$arg]="false"; returnState
="false"; 
  35     #for key in "${!appRollCall[@]}"; do echo "DEBUG:$key => ${appRollCall[$key]}"; done 
  36     #echo "DEBUG:evaluating returnstate. returnState:"$returnState 
  38     #===Determine function return code=== 
  39     if [ "$returnState" = "true" ]; then 
  40         #echo "DEBUG:checkapp returns true for $arg"; 
  43         #echo "DEBUG:checkapp returns false for $arg"; 
  46 } # Check that app exists 
  48     # Desc: If arg is a file path, save result in assoc array 'fileRollCall' 
  49     # Usage: checkfile arg1 arg2 arg3 ... 
  50     # Input: global assoc. array 'fileRollCall' 
  51     # Output: adds/updates key(value) to global assoc array 'fileRollCall'; 
  52     # Output: returns 0 if app found, 1 otherwise 
  57         #echo "DEBUG:processing arg:$arg" 
  58         if [ -f "$arg" ]; then 
  59             fileRollCall
["$arg"]="true"; 
  60             #echo "DEBUG:fileRollCall[\"$arg\"]:"${fileRollCall["$arg"]} 
  61             if ! [ "$returnState" = "false" ]; then returnState
="true"; fi 
  63             fileRollCall
["$arg"]="false"; returnState
="false"; 
  67     #for key in "${!fileRollCall[@]}"; do echo "DEBUG:fileRollCall key [$key] is:${fileRollCall[$key]}"; done 
  68     #echo "DEBUG:evaluating returnstate. returnState:"$returnState 
  70     #===Determine function return code=== 
  71     if [ "$returnState" = "true" ]; then 
  72         #echo "DEBUG:checkapp returns true for $arg"; 
  75         #echo "DEBUG:checkapp returns false for $arg"; 
  78 } # Check that file exists 
  80     # Desc: If arg is a dir path, save result in assoc array 'dirRollCall' 
  81     # Usage: checkdir arg1 arg2 arg3 ... 
  82     # Input: global assoc. array 'dirRollCall' 
  83     # Output: adds/updates key(value) to global assoc array 'dirRollCall'; 
  84     # Output: returns 0 if app found, 1 otherwise 
  89         #echo "DEBUG:processing arg:$arg" 
  90         if [ -d "$arg" ]; then 
  91             dirRollCall
["$arg"]="true"; 
  92             #echo "DEBUG:dirRollCall[\"$arg\"]:"${dirRollCall["$arg"]} 
  93             if ! [ "$returnState" = "false" ]; then returnState
="true"; fi 
  95             dirRollCall
["$arg"]="false"; returnState
="false"; 
  99     #for key in "${!dirRollCall[@]}"; do echo "DEBUG:dirRollCall key [$key] is:${dirRollCall[$key]}"; done 
 100     #echo "DEBUG:evaluating returnstate. returnState:"$returnState 
 102     #===Determine function return code=== 
 103     if [ "$returnState" = "true" ]; then 
 104         #echo "DEBUG:checkapp returns true for $arg"; 
 107         #echo "DEBUG:checkapp returns false for $arg"; 
 110 } # Check that dir exists 
 111 #===END Declare local script functions=== 
 112 #==END Define script parameters== 
 114 #==BEGIN sample code== 
 115 if checkapp 
cat; then echo "cat found."; fi 
 116 if checkapp gpg
; then echo "gpg found."; fi 
 117 if checkapp emaaaacs
; then echo "emaaaacs found."; fi 
 120 #==BEGIN Display errors== 
 121 #===BEGIN Display Missing Apps=== 
 122 missingApps
="Missing apps  :" 
 123 #for key in "${!appRollCall[@]}"; do echo "DEBUG:$key => ${appRollCall[$key]}"; done 
 124 for key 
in "${!appRollCall[@]}"; do 
 125     value
="${appRollCall[$key]}" 
 126     if [ "$value" = "false" ]; then 
 127         #echo "DEBUG:Missing apps: $key => $value"; 
 128         missingApps
="$missingApps""$key " 
 132 if [ "$appMissing" = "true" ]; then  # Only indicate if an app is missing. 
 133     echo "$missingApps" 1>&2; 
 135 #===END Display Missing Apps=== 
 137 #===BEGIN Display Missing Files=== 
 138 missingFiles
="Missing files:" 
 139 #for key in "${!fileRollCall[@]}"; do echo "DEBUG:$key => ${fileRollCall[$key]}"; done 
 140 for key 
in "${!fileRollCall[@]}"; do 
 141     value
="${fileRollCall[$key]}" 
 142     if [ "$value" = "false" ]; then 
 143         #echo "DEBUG:Missing files: $key => $value"; 
 144         missingFiles
="$missingFiles""$key " 
 148 if [ "$fileMissing" = "true" ]; then  # Only indicate if an app is missing. 
 149     echo "$missingFiles" 1>&2; 
 151 #===END Display Missing Files=== 
 153 #===BEGIN Display Missing Directories=== 
 154 missingDirs
="Missing dirs:" 
 155 #for key in "${!dirRollCall[@]}"; do echo "DEBUG:$key => ${dirRollCall[$key]}"; done 
 156 for key 
in "${!dirRollCall[@]}"; do 
 157     value
="${dirRollCall[$key]}" 
 158     if [ "$value" = "false" ]; then 
 159         #echo "DEBUG:Missing dirs: $key => $value"; 
 160         missingDirs
="$missingDirs""$key " 
 164 if [ "$dirMissing" = "true" ]; then  # Only indicate if an dir is missing. 
 165     echo "$missingDirs" 1>&2; 
 167 #===END Display Missing Directories=== 
 169 #===BEGIN Display Failed Functions=== 
 170 if [ ${#failedFunctions} -gt 0 ]; then # Only indicate if an function failed. 
 171     echo "Failed functions:${failedFunctions[@]}" 1>&2; 
 173 #===END Display Failed Functions=== 
 175 #==END Display errors==