Make Homebrew install stuff

This commit is contained in:
Marley Rae 2024-01-22 21:01:13 -08:00
parent 9b1196d7f7
commit 8cc3e0afd2
4 changed files with 82 additions and 13 deletions

9
git/install.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
# vim:set ft=bash:
cd "$(dirname "${BASH_SOURCE[0]}")" \
&& . "../homebrew/brew_utils.sh"
brew_install "Git" "git"
brew_install "Github CLI" "gh"
brew_install "Gitmoji" "gitmoji"

70
homebrew/brew_utils.sh Normal file
View file

@ -0,0 +1,70 @@
#!/user/bin/env bash
cd "$(dirname "${BASH_SOURCE[0]}")" \
&& . "../script/utils.sh"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
brew_prefix()
{
local path=""
if path="$(brew --prefix 2>/dev/null)"; then
printf "%s" "$path"
return 0
else
print_error "Homebrew (get prefix)"
return 1
fi
}
brew_tap()
{
brew tap "$1" &>/dev/null
}
brew_update()
{
execute "brew update" "Homebrew (update)"
}
brew_upgrade()
{
execute "brew upgrade" "Homebrew (upgrade)"
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
brew_install()
{
declare -r FORMULA_READABLE_NAME="$1"
declare -r FORMULA="$2"
declare -r ARGUMENTS="$3"
declare -r TAP_VALUE="$4"
# Check that Homebrew is installed.
if ! cmd_exists "brew"; then
print_error "$FORMULA_READABLE_NAME ('Homebrew' is not installed)"
return 1
fi
# If 'brew tap' needs to be executed, check if it executed correctly.
if [[ -n "$TAP_VALUE" ]]; then
if ! brew_tap "$TAP_VALUE"; then
print_error "$FORMULA_READABLE_NAME ('brew tap $TAP_VALUE' failed)"
return 1
fi
fi
# Install the specified formula.
# shellcheck disable=SC2086
if brew list "$FORMULA" &>/dev/null; then
print_success "$FORMULA_READABLE_NAME"
else
execute "brew install $FORMULA $ARGUMENTS" \
"$FORMULA_READABLE_NAME"
fi
}

View file

@ -1,11 +0,0 @@
#!/user/bin/env bash
# vim:set ft=bash:
install_once()
{
if brew ls --versions "$1"; then
brew upgrade "$1"
else
brew install "$1"
fi
}

View file

@ -1,6 +1,7 @@
#!/usr/bin/env bash
# vim:set ft=bash:
source $DOT/homebrew/install_once.sh
cd "$(dirname "${BASH_SOURCE[0]}")" \
&& . "../homebrew/brew_utils.sh"
install_once starship
brew_install "Starship Prompt" "starship"