Added initial port of original OSX project.
- This is a copy of the [OSX](https://github.com/bkuhlmann/osx) project originally released on 2012-03-31. The OSX project has been deprecated. All future development and support will take place with this project instead. - This project uses the *macOS* name in order to better match the updated branding and terminology used by Apple.
This commit is contained in:
108
lib/verifiers.sh
Normal file
108
lib/verifiers.sh
Normal file
@@ -0,0 +1,108 @@
|
||||
#! /bin/bash
|
||||
|
||||
# DESCRIPTION
|
||||
# Defines verification/validation functions.
|
||||
|
||||
# Verifies Homebrew software exists.
|
||||
# Parameters:
|
||||
# $1 = The file name.
|
||||
verify_homebrew() {
|
||||
local application="$1"
|
||||
local applications="$2"
|
||||
|
||||
if [[ "${applications[*]}" != *"$application"* ]]; then
|
||||
printf " - Missing: $application\n"
|
||||
fi
|
||||
}
|
||||
export -f verify_homebrew
|
||||
|
||||
# Checks for missing Homebrew software.
|
||||
verify_homebrews() {
|
||||
printf "Checking Homebrew software...\n"
|
||||
|
||||
local applications="$(brew list)"
|
||||
|
||||
while read line; do
|
||||
# Skip blank or comment lines.
|
||||
if [[ "$line" == "brew install"* ]]; then
|
||||
local application=$(printf "$line" | awk '{print $3}')
|
||||
|
||||
# Exception: "gpg" is the binary but is listed as "gnugp".
|
||||
if [[ "$application" == "gpg" ]]; then
|
||||
application="gnupg"
|
||||
fi
|
||||
|
||||
# Exception: "hg" is the binary but is listed as "mercurial".
|
||||
if [[ "$application" == "hg" ]]; then
|
||||
application="mercurial"
|
||||
fi
|
||||
|
||||
verify_homebrew "$application" "${applications[*]}"
|
||||
fi
|
||||
done < "$PWD/scripts/homebrew.sh"
|
||||
|
||||
printf "Homebrew check complete.\n"
|
||||
}
|
||||
export -f verify_homebrews
|
||||
|
||||
# Verifies application exists.
|
||||
# Parameters:
|
||||
# $1 = The file name.
|
||||
verify_application() {
|
||||
local file_name="$1"
|
||||
|
||||
# Display the missing install if not found.
|
||||
local install_path=$(get_install_path "$file_name")
|
||||
|
||||
if [[ ! -e "$install_path" ]]; then
|
||||
printf " - Missing: $file_name\n"
|
||||
fi
|
||||
}
|
||||
export -f verify_application
|
||||
|
||||
# Checks for missing applications suffixed by "APP_NAME" as defined in settings.sh.
|
||||
verify_applications() {
|
||||
printf "\nChecking application software...\n"
|
||||
|
||||
# Only use environment keys that end with "APP_NAME".
|
||||
local file_names=$(set | awk -F "=" '{print $1}' | grep ".*APP_NAME")
|
||||
|
||||
# For each application name, check to see if the application is installed. Otherwise, skip.
|
||||
for name in $file_names; do
|
||||
# Pass the key value to verfication.
|
||||
verify_application "${!name}"
|
||||
done
|
||||
|
||||
printf "Application software check complete.\n"
|
||||
}
|
||||
export -f verify_applications
|
||||
|
||||
# Verifies path exists.
|
||||
# Parameters:
|
||||
# $1 = The path.
|
||||
verify_path() {
|
||||
local path="$1"
|
||||
|
||||
# Display the missing path if not found.
|
||||
if [[ ! -e "$path" ]]; then
|
||||
printf " - Missing: $path\n"
|
||||
fi
|
||||
}
|
||||
export -f verify_path
|
||||
|
||||
# Checks for missing extensions suffixed by "EXTENSION_PATH" as defined in settings.sh.
|
||||
verify_extensions() {
|
||||
printf "\nChecking application extensions...\n"
|
||||
|
||||
# Only use environment keys that end with "EXTENSION_PATH".
|
||||
local extensions=$(set | awk -F "=" '{print $1}' | grep ".*EXTENSION_PATH")
|
||||
|
||||
# For each extension, check to see if the extension is installed. Otherwise, skip.
|
||||
for extension in $extensions; do
|
||||
# Evaluate/extract the key (extension) value and pass it on for verfication.
|
||||
verify_path "${!extension}"
|
||||
done
|
||||
|
||||
printf "Application extension check complete.\n"
|
||||
}
|
||||
export -f verify_extensions
|
||||
Reference in New Issue
Block a user