From 5c12a47f116ca31390ca88a1fc299ea018b2179c Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Sun, 29 Jul 2018 15:44:46 -0600 Subject: [PATCH] Added App Store application verification. Ensures all listed App Store applications are installed. Otherwise, it lists those which are not. --- lib/options.sh | 1 + lib/verifiers.sh | 37 ++++++++++++++++++++++++++----------- 2 files changed, 27 insertions(+), 11 deletions(-) diff --git a/lib/options.sh b/lib/options.sh index 8f6c544..c578b3b 100644 --- a/lib/options.sh +++ b/lib/options.sh @@ -45,6 +45,7 @@ process_option() { 'c') verify_homebrew_formulas verify_homebrew_casks + verify_app_store_applications verify_applications verify_extensions;; 'C') diff --git a/lib/verifiers.sh b/lib/verifiers.sh index 52d8e49..bcaf2b4 100644 --- a/lib/verifiers.sh +++ b/lib/verifiers.sh @@ -24,7 +24,7 @@ verify_homebrew_formulas() { application="mercurial" fi - verify_homebrew_application "$application" "${applications[*]}" + verify_listed_application "$application" "${applications[*]}" fi done < "$MAC_OS_CONFIG_PATH/bin/install_homebrew_formulas" @@ -53,7 +53,7 @@ verify_homebrew_casks() { continue fi - verify_homebrew_application "$application" "${applications[*]}" + verify_listed_application "$application" "${applications[*]}" fi done < "$MAC_OS_CONFIG_PATH/bin/install_homebrew_casks" @@ -61,10 +61,27 @@ verify_homebrew_casks() { } export -f verify_homebrew_casks -# Verifies Homebrew software exists. -# Parameters: -# $1 = The file name. -verify_homebrew_application() { +# Checks for missing App Store applications. +verify_app_store_applications() { + printf "\nChecking App Store applications...\n" + + local applications="$(mas list)" + + while read line; do + # Skip blank or comment lines. + if [[ "$line" == "mas install"* ]]; then + local application=$(printf "$line" | awk '{print $3}') + verify_listed_application "$application" "${applications[*]}" + fi + done < "$MAC_OS_CONFIG_PATH/bin/install_app_store" + + printf "App Store check complete.\n" +} +export -f verify_app_store_applications + +# Verifies listed application exists. +# Parameters: $1 (required) - The current application, $2 (required) - The application list. +verify_listed_application() { local application="$1" local applications="$2" @@ -72,7 +89,7 @@ verify_homebrew_application() { printf " - Missing: $application\n" fi } -export -f verify_homebrew_application +export -f verify_listed_application # Checks for missing applications suffixed by "APP_NAME" as defined in settings.sh. verify_applications() { @@ -92,8 +109,7 @@ verify_applications() { export -f verify_applications # Verifies application exists. -# Parameters: -# $1 = The file name. +# Parameters: $1 (required) - The file name. verify_application() { local file_name="$1" @@ -124,8 +140,7 @@ verify_extensions() { export -f verify_extensions # Verifies path exists. -# Parameters: -# $1 = The path. +# Parameters: $1 (required) - The path. verify_path() { local path="$1"