Refactored library function order.
Moved primary functions above secondary functions for easier readability.
This commit is contained in:
@@ -3,112 +3,6 @@
|
|||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# Defines software installer functions.
|
# 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.
|
# Installs Java.
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# $1 = The URL.
|
# $1 = The URL.
|
||||||
@@ -300,3 +194,109 @@ install_git_project() {
|
|||||||
rm -rf "$project_dir"
|
rm -rf "$project_dir"
|
||||||
}
|
}
|
||||||
export -f install_git_project
|
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
|
||||||
|
|||||||
@@ -3,52 +3,6 @@
|
|||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# Defines general utility functions.
|
# 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.
|
# Answers the full install path (including file name) for file name.
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# $1 = The file name.
|
# $1 = The file name.
|
||||||
@@ -77,3 +31,49 @@ caffeinate_machine() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
export -f caffeinate_machine
|
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
|
||||||
|
|||||||
@@ -3,19 +3,6 @@
|
|||||||
# DESCRIPTION
|
# DESCRIPTION
|
||||||
# Defines verification/validation functions.
|
# 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.
|
# Checks for missing Homebrew formulas.
|
||||||
verify_homebrew_formulas() {
|
verify_homebrew_formulas() {
|
||||||
printf "Checking Homebrew formulas...\n"
|
printf "Checking Homebrew formulas...\n"
|
||||||
@@ -45,20 +32,18 @@ verify_homebrew_formulas() {
|
|||||||
}
|
}
|
||||||
export -f verify_homebrew_formulas
|
export -f verify_homebrew_formulas
|
||||||
|
|
||||||
# Verifies application exists.
|
# Verifies Homebrew software exists.
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# $1 = The file name.
|
# $1 = The file name.
|
||||||
verify_application() {
|
verify_homebrew() {
|
||||||
local file_name="$1"
|
local application="$1"
|
||||||
|
local applications="$2"
|
||||||
|
|
||||||
# Display the missing install if not found.
|
if [[ "${applications[*]}" != *"$application"* ]]; then
|
||||||
local install_path=$(get_install_path "$file_name")
|
printf " - Missing: $application\n"
|
||||||
|
|
||||||
if [[ ! -e "$install_path" ]]; then
|
|
||||||
printf " - Missing: $file_name\n"
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
export -f verify_application
|
export -f verify_homebrew
|
||||||
|
|
||||||
# Checks for missing applications suffixed by "APP_NAME" as defined in settings.sh.
|
# Checks for missing applications suffixed by "APP_NAME" as defined in settings.sh.
|
||||||
verify_applications() {
|
verify_applications() {
|
||||||
@@ -77,18 +62,20 @@ verify_applications() {
|
|||||||
}
|
}
|
||||||
export -f verify_applications
|
export -f verify_applications
|
||||||
|
|
||||||
# Verifies path exists.
|
# Verifies application exists.
|
||||||
# Parameters:
|
# Parameters:
|
||||||
# $1 = The path.
|
# $1 = The file name.
|
||||||
verify_path() {
|
verify_application() {
|
||||||
local path="$1"
|
local file_name="$1"
|
||||||
|
|
||||||
# Display the missing path if not found.
|
# Display the missing install if not found.
|
||||||
if [[ ! -e "$path" ]]; then
|
local install_path=$(get_install_path "$file_name")
|
||||||
printf " - Missing: $path\n"
|
|
||||||
|
if [[ ! -e "$install_path" ]]; then
|
||||||
|
printf " - Missing: $file_name\n"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
export -f verify_path
|
export -f verify_application
|
||||||
|
|
||||||
# Checks for missing extensions suffixed by "EXTENSION_PATH" as defined in settings.sh.
|
# Checks for missing extensions suffixed by "EXTENSION_PATH" as defined in settings.sh.
|
||||||
verify_extensions() {
|
verify_extensions() {
|
||||||
@@ -106,3 +93,16 @@ verify_extensions() {
|
|||||||
printf "Application extension check complete.\n"
|
printf "Application extension check complete.\n"
|
||||||
}
|
}
|
||||||
export -f verify_extensions
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user