# Desc: Checks that apps, files, or dirs exist.
#==BEGIN Define script parameters==
+#===BEGIN Define variables===
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==
+#===END Define variables===
#===BEGIN Declare local script functions===
checkapp() {
checkdir() {
# Desc: If arg is a dir path, save result in assoc array 'dirRollCall'
# Usage: checkdir arg1 arg2 arg3 ...
- # Version 0.1.1
+ # Version 0.1.2
# Input: global assoc. array 'dirRollCall'
# Output: adds/updates key(value) to global assoc array 'dirRollCall';
- # Output: returns 0 if app found, 1 otherwise
+ # Output: returns 0 if all args are dirs; 1 otherwise
# Depends: Bash 5.0.3
local returnState
#===Process Args===
for arg in "$@"; do
- if [ -d "$arg" ]; then
+ if [ -z "$arg" ]; then
+ dirRollCall["(Unspecified Dirname(s))"]="false"; returnState="false";
+ elif [ -d "$arg" ]; then
dirRollCall["$arg"]="true";
if ! [ "$returnState" = "false" ]; then returnState="true"; fi
else
displayMissing() {
# Desc: Displays missing apps, files, and dirs
# Usage: displayMissing
- # Version 0.1.1
+ # Version 1.0.0
# Input: associative arrays: appRollCall, fileRollCall, dirRollCall
# Output: stderr: messages indicating missing apps, file, or dirs
+ # Output: returns exit code 0 if nothing missing; 1 otherwise
# Depends: bash 5, checkAppFileDir()
local missingApps value appMissing missingFiles fileMissing
local missingDirs dirMissing
-
+
#==BEGIN Display errors==
#===BEGIN Display Missing Apps===
missingApps="Missing apps :";
#===END Display Missing Directories===
#==END Display errors==
+ #==BEGIN Determine function return code===
+ if [ "$appMissing" == "true" ] || [ "$fileMissing" == "true" ] || [ "$dirMissing" == "true" ]; then
+ return 1;
+ else
+ return 0;
+ fi
+ #==END Determine function return code===
} # Display missing apps, files, dirs
#===END Declare local script functions===
#==BEGIN sample code==
if checkapp cat; then echo "cat found."; fi;
if checkapp gpg; then echo "gpg found."; fi;
+if displayMissing 1>/dev/null 2>&1; then
+ echo "Nothing missing so far...";
+fi;
+
if checkapp emaaaacs; then echo "emaaaacs found."; fi;
sleep 1;
-displayMissing;
+if ! displayMissing 1>/dev/null 2>&1; then
+ echo "Something is missing!";
+ displayMissing;
+fi;
#==END sample code==
# Author: Steven Baltaktei Sandoval