From 2f6b385f2f4ffe805333efc1136438cce6d0da82 Mon Sep 17 00:00:00 2001 From: Brooke Kuhlmann Date: Sun, 29 Jul 2018 13:40:42 -0600 Subject: [PATCH] Refactored library function order. Moved primary functions above secondary functions for easier readability. --- lib/installers.sh | 212 +++++++++++++++++++++++----------------------- lib/utilities.sh | 92 ++++++++++---------- lib/verifiers.sh | 60 ++++++------- 3 files changed, 182 insertions(+), 182 deletions(-) diff --git a/lib/installers.sh b/lib/installers.sh index 9575aec..adb2772 100644 --- a/lib/installers.sh +++ b/lib/installers.sh @@ -3,112 +3,6 @@ # DESCRIPTION # Defines software installer functions. -# Mounts a disk image. -# Parameters: -# $1 = The image path. -mount_image() { - printf "Mounting image...\n" - hdiutil attach -quiet -nobrowse -noautoopen "$1" -} -export -f mount_image - -# Unmounts a disk image. -# Parameters: -# $1 = The mount path. -unmount_image() { - printf "Unmounting image...\n" - hdiutil detach -force "$1" -} -export -f unmount_image - -# Downloads an installer to local disk. -# Parameters: -# $1 = The URL. -# $2 = The file name. -# $3 = The HTTP header. -download_installer() { - local url="$1" - local file_name="$2" - local http_header="$3" - - printf "%s\n" "Downloading $1..." - clean_work_path - mkdir $MAC_OS_WORK_PATH - curl --header "$http_header" --location --retry 3 --retry-delay 5 --fail --silent --show-error "$url" >> "$MAC_OS_WORK_PATH/$file_name" -} -export -f download_installer - -# Downloads an installer to the $HOME/Downloads folder for manual use. -# Parameters: -# $1 = The URL. -# $2 = The file name. -download_only() { - if [[ -e "$HOME/Downloads/$2" ]]; then - printf "Downloaded: $2.\n" - else - printf "Downloading $1...\n" - download_installer "$1" "$2" - mv "$MAC_OS_WORK_PATH/$2" "$HOME/Downloads" - fi -} -export -f download_only - -# Installs a single file. -# Parameters: -# $1 = The URL. -# $2 = The install path. -install_file() { - local file_url="$1" - local file_name=$(get_file_name "$1") - local install_path="$2" - - if [[ ! -e "$install_path" ]]; then - printf "Installing: $install_path...\n" - download_installer "$file_url" "$file_name" - mkdir -p $(dirname "$install_path") - mv "$MAC_OS_WORK_PATH/$file_name" "$install_path" - printf "Installed: $file_name.\n" - verify_path "$install_path" - fi -} -export -f install_file - -# Installs an application. -# Parameters: -# $1 = The application source path. -# $2 = The application name. -install_app() { - local install_root=$(get_install_root "$2") - local file_extension=$(get_file_extension "$2") - - printf "Installing: $install_root/$2...\n" - - case $file_extension in - 'app') - cp -a "$1/$2" "$install_root";; - 'prefPane') - sudo cp -pR "$1/$2" "$install_root";; - 'qlgenerator') - sudo cp -pR "$1/$2" "$install_root" && qlmanage -r;; - *) - printf "ERROR: Unknown file extension: $file_extension.\n" - esac -} -export -f install_app - -# Installs a package. -# Parameters: -# $1 = The package source path. -# $2 = The application name. -install_pkg() { - local install_root=$(get_install_root "$2") - - printf "Installing: $install_root/$2...\n" - local package=$(sudo find "$1" -maxdepth 1 -type f -name "*.pkg" -o -name "*.mpkg") - sudo installer -pkg "$package" -target / -} -export -f install_pkg - # Installs Java. # Parameters: # $1 = The URL. @@ -300,3 +194,109 @@ install_git_project() { rm -rf "$project_dir" } export -f install_git_project + +# Downloads an installer to local disk. +# Parameters: +# $1 = The URL. +# $2 = The file name. +# $3 = The HTTP header. +download_installer() { + local url="$1" + local file_name="$2" + local http_header="$3" + + printf "%s\n" "Downloading $1..." + clean_work_path + mkdir $MAC_OS_WORK_PATH + curl --header "$http_header" --location --retry 3 --retry-delay 5 --fail --silent --show-error "$url" >> "$MAC_OS_WORK_PATH/$file_name" +} +export -f download_installer + +# Downloads an installer to the $HOME/Downloads folder for manual use. +# Parameters: +# $1 = The URL. +# $2 = The file name. +download_only() { + if [[ -e "$HOME/Downloads/$2" ]]; then + printf "Downloaded: $2.\n" + else + printf "Downloading $1...\n" + download_installer "$1" "$2" + mv "$MAC_OS_WORK_PATH/$2" "$HOME/Downloads" + fi +} +export -f download_only + +# Installs a single file. +# Parameters: +# $1 = The URL. +# $2 = The install path. +install_file() { + local file_url="$1" + local file_name=$(get_file_name "$1") + local install_path="$2" + + if [[ ! -e "$install_path" ]]; then + printf "Installing: $install_path...\n" + download_installer "$file_url" "$file_name" + mkdir -p $(dirname "$install_path") + mv "$MAC_OS_WORK_PATH/$file_name" "$install_path" + printf "Installed: $file_name.\n" + verify_path "$install_path" + fi +} +export -f install_file + +# Installs an application. +# Parameters: +# $1 = The application source path. +# $2 = The application name. +install_app() { + local install_root=$(get_install_root "$2") + local file_extension=$(get_file_extension "$2") + + printf "Installing: $install_root/$2...\n" + + case $file_extension in + 'app') + cp -a "$1/$2" "$install_root";; + 'prefPane') + sudo cp -pR "$1/$2" "$install_root";; + 'qlgenerator') + sudo cp -pR "$1/$2" "$install_root" && qlmanage -r;; + *) + printf "ERROR: Unknown file extension: $file_extension.\n" + esac +} +export -f install_app + +# Installs a package. +# Parameters: +# $1 = The package source path. +# $2 = The application name. +install_pkg() { + local install_root=$(get_install_root "$2") + + printf "Installing: $install_root/$2...\n" + local package=$(sudo find "$1" -maxdepth 1 -type f -name "*.pkg" -o -name "*.mpkg") + sudo installer -pkg "$package" -target / +} +export -f install_pkg + +# Mounts a disk image. +# Parameters: +# $1 = The image path. +mount_image() { + printf "Mounting image...\n" + hdiutil attach -quiet -nobrowse -noautoopen "$1" +} +export -f mount_image + +# Unmounts a disk image. +# Parameters: +# $1 = The mount path. +unmount_image() { + printf "Unmounting image...\n" + hdiutil detach -force "$1" +} +export -f unmount_image diff --git a/lib/utilities.sh b/lib/utilities.sh index 618a9ab..3608df0 100644 --- a/lib/utilities.sh +++ b/lib/utilities.sh @@ -3,52 +3,6 @@ # DESCRIPTION # Defines general utility functions. -# Answers the file name. -# Parameters: -# $1 = The file path. -get_file_name() { - printf "${1##*/}" # Answers file or directory name. -} -export -f get_file_name - -# Answers the file extension. -# Parameters: -# $1 = The file name. -get_file_extension() { - local name=$(get_file_name "$1") - local extension="${1##*.}" # Excludes dot. - - if [[ "$name" == "$extension" ]]; then - printf '' - else - printf "$extension" - fi -} -export -f get_file_extension - -# Answers the root install path for file name. -# Parameters: -# $1 = The file name. -get_install_root() { - local file_name="$1" - local file_extension=$(get_file_extension "$file_name") - - # Dynamically build the install path based on file extension. - case $file_extension in - '') - printf "/usr/local/bin";; - 'app') - printf "/Applications";; - 'prefPane') - printf "/Library/PreferencePanes";; - 'qlgenerator') - printf "/Library/QuickLook";; - *) - printf "/tmp/unknown";; - esac -} -export -f get_install_root - # Answers the full install path (including file name) for file name. # Parameters: # $1 = The file name. @@ -77,3 +31,49 @@ caffeinate_machine() { fi } export -f caffeinate_machine + +# Answers the root install path for file name. +# Parameters: +# $1 = The file name. +get_install_root() { + local file_name="$1" + local file_extension=$(get_file_extension "$file_name") + + # Dynamically build the install path based on file extension. + case $file_extension in + '') + printf "/usr/local/bin";; + 'app') + printf "/Applications";; + 'prefPane') + printf "/Library/PreferencePanes";; + 'qlgenerator') + printf "/Library/QuickLook";; + *) + printf "/tmp/unknown";; + esac +} +export -f get_install_root + +# Answers the file extension. +# Parameters: +# $1 = The file name. +get_file_extension() { + local name=$(get_file_name "$1") + local extension="${1##*.}" # Excludes dot. + + if [[ "$name" == "$extension" ]]; then + printf '' + else + printf "$extension" + fi +} +export -f get_file_extension + +# Answers the file name. +# Parameters: +# $1 = The file path. +get_file_name() { + printf "${1##*/}" # Answers file or directory name. +} +export -f get_file_name diff --git a/lib/verifiers.sh b/lib/verifiers.sh index 420b993..a7f1f18 100644 --- a/lib/verifiers.sh +++ b/lib/verifiers.sh @@ -3,19 +3,6 @@ # 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 formulas. verify_homebrew_formulas() { printf "Checking Homebrew formulas...\n" @@ -45,20 +32,18 @@ verify_homebrew_formulas() { } export -f verify_homebrew_formulas -# Verifies application exists. +# Verifies Homebrew software exists. # Parameters: # $1 = The file name. -verify_application() { - local file_name="$1" +verify_homebrew() { + local application="$1" + local applications="$2" - # 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" + if [[ "${applications[*]}" != *"$application"* ]]; then + printf " - Missing: $application\n" fi } -export -f verify_application +export -f verify_homebrew # Checks for missing applications suffixed by "APP_NAME" as defined in settings.sh. verify_applications() { @@ -77,18 +62,20 @@ verify_applications() { } export -f verify_applications -# Verifies path exists. +# Verifies application exists. # Parameters: -# $1 = The path. -verify_path() { - local path="$1" +# $1 = The file name. +verify_application() { + local file_name="$1" - # Display the missing path if not found. - if [[ ! -e "$path" ]]; then - printf " - Missing: $path\n" + # 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_path +export -f verify_application # Checks for missing extensions suffixed by "EXTENSION_PATH" as defined in settings.sh. verify_extensions() { @@ -106,3 +93,16 @@ verify_extensions() { printf "Application extension check complete.\n" } export -f verify_extensions + +# 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