Necessary to make installing personal dotfiles a first class citizen like many of the other install scripts. Having one's own dotfiles as part of the machine setup helps ensure the shell is configured properly especially when it comes to dealing with language specific dependencies for Ruby, Rust, Node, etc. This reduces duplication within this project -- and the macOS Configuration project -- from having to know all of these details when settings can be defined within one's own dotfiles once.
69 lines
2.4 KiB
Bash
Executable File
69 lines
2.4 KiB
Bash
Executable File
#! /usr/bin/env bash
|
|
|
|
# Executes the command line interface.
|
|
|
|
source lib/installers.sh
|
|
source lib/options.sh
|
|
source lib/reinstallers.sh
|
|
source lib/settings.sh
|
|
source lib/uninstallers.sh
|
|
source lib/utilities.sh
|
|
source lib/verifiers.sh
|
|
|
|
if [[ -e "$MAC_OS_CONFIG_PATH" ]]; then
|
|
source "$MAC_OS_CONFIG_PATH/lib/settings.sh"
|
|
else
|
|
printf "ERROR: Unable to load macOS configuration: $MAC_OS_CONFIG_PATH.\n\n"
|
|
printf "Please check the following before continuing:\n"
|
|
printf " • Download the default macOS configuration here: https://github.com/bkuhlmann/mac_os-config.\n"
|
|
printf " • Customize as necessary for your setup or fork the project and make your own configuration.\n"
|
|
printf " • When finished, your folder structure should look like this:\n"
|
|
printf " • <root path>/mac_os:\n"
|
|
printf " • <root path>/mac_os-config:\n"
|
|
exit 1
|
|
fi
|
|
|
|
configure_environment
|
|
|
|
while true; do
|
|
if [[ $# == 0 ]]; then
|
|
printf "\nUsage: run OPTION\n"
|
|
printf "\nOSX Options:\n"
|
|
printf " Boot:\n"
|
|
printf " B: Create boot disk.\n"
|
|
printf " Install:\n"
|
|
printf " b: Apply basic settings.\n"
|
|
printf " t: Install development tools.\n"
|
|
printf " hf: Install Homebrew Formulas.\n"
|
|
printf " hc: Install Homebrew Casks.\n"
|
|
printf " m: Install Mac App Store software.\n"
|
|
printf " a: Install application software.\n"
|
|
printf " x: Install application software extensions.\n"
|
|
printf " df: Install dotfiles.\n"
|
|
printf " np: Install Node packages.\n"
|
|
printf " rg: Install Ruby gems.\n"
|
|
printf " rc: Install Rust crates.\n"
|
|
printf " d: Apply default settings.\n"
|
|
printf " s: Setup installed software.\n"
|
|
printf " i: Install everything (i.e. executes all install options in order listed).\n"
|
|
printf " Restore:\n"
|
|
printf " R: Restore settings from backup.\n"
|
|
printf " Manage:\n"
|
|
printf " c: Check status of managed software.\n"
|
|
printf " C: Caffeinate machine.\n"
|
|
printf " ua: Uninstall application software.\n"
|
|
printf " ux: Uninstall application software extension.\n"
|
|
printf " ra: Reinstall application software.\n"
|
|
printf " rx: Reinstall application software extension.\n"
|
|
printf " w: Clean work (temp) directory.\n"
|
|
printf " q: Quit/Exit.\n\n"
|
|
read -p "Enter selection: " response
|
|
printf "\n"
|
|
process_option $response
|
|
else
|
|
process_option $1
|
|
fi
|
|
|
|
break
|
|
done
|