2022-09-02 00:40:31 +05:30
|
|
|
# Function to fetch a brew tap.
|
|
|
|
fetch_brew_tap() {
|
|
|
|
tap=$1
|
|
|
|
tap_user=$(dirname "$tap")
|
|
|
|
tap_name=$(basename "$tap")
|
|
|
|
mkdir -p "$tap_dir/$tap_user"
|
|
|
|
branch="$(get -s -n "" "https://api.github.com/repos/$tap" | grep default_branch | cut -d: -f 2 | grep -Eo '[^\", ]+' | tr -d '\n')"
|
|
|
|
get -s -n "" "https://github.com/$tap/archive/$branch.tar.gz" | sudo tar -xzf - -C "$tap_dir/$tap_user"
|
|
|
|
sudo mv "$tap_dir/$tap_user/$tap_name-$branch" "$tap_dir/$tap_user/$tap_name"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Function to add a brew tap.
|
|
|
|
add_brew_tap() {
|
|
|
|
tap=$1
|
|
|
|
if ! [ -d "$tap_dir/$tap" ]; then
|
|
|
|
if [ "${runner:?}" = "self-hosted" ]; then
|
|
|
|
brew tap "$tap" >/dev/null 2>&1
|
|
|
|
else
|
|
|
|
fetch_brew_tap "$tap" >/dev/null 2>&1
|
|
|
|
if ! [ -d "$tap_dir/$tap" ]; then
|
|
|
|
brew tap "$tap" >/dev/null 2>&1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2022-10-10 16:24:35 +05:30
|
|
|
# Function to get brew prefix.
|
|
|
|
get_brew_prefix() {
|
|
|
|
if [ "$(uname -s)" = "Linux" ]; then
|
|
|
|
echo /home/linuxbrew/.linuxbrew
|
|
|
|
else
|
|
|
|
if [ "$(uname -m)" = "arm64" ]; then
|
|
|
|
echo /opt/homebrew
|
|
|
|
else
|
|
|
|
echo /usr/local
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# Function to add brew's bin directories to the PATH.
|
|
|
|
add_brew_bins_to_path() {
|
|
|
|
local brew_prefix=${1:-$(get_brew_prefix)}
|
|
|
|
add_path "$brew_prefix"/bin
|
|
|
|
add_path "$brew_prefix"/sbin
|
|
|
|
}
|
|
|
|
|
|
|
|
# Function to add brew.
|
|
|
|
add_brew() {
|
|
|
|
brew_prefix="$(get_brew_prefix)"
|
|
|
|
if ! [ -d "$brew_prefix"/bin ]; then
|
|
|
|
step_log "Setup Brew"
|
|
|
|
get -s "" "/tmp/install.sh" "https://raw.githubusercontent.com/Homebrew/install/master/install.sh" | bash -s >/dev/null 2>&1
|
|
|
|
add_log "${tick:?}" "Brew" "Installed Homebrew"
|
|
|
|
fi
|
|
|
|
add_brew_bins_to_path "$brew_prefix"
|
|
|
|
}
|
|
|
|
|
2022-09-02 00:40:31 +05:30
|
|
|
# Function to configure brew constants.
|
|
|
|
configure_brew() {
|
|
|
|
brew_path="$(command -v brew)"
|
2022-10-10 16:24:35 +05:30
|
|
|
if [ -z "$brew_path" ]; then
|
|
|
|
add_brew
|
|
|
|
brew_path="$(command -v brew)"
|
|
|
|
fi
|
2022-09-02 00:40:31 +05:30
|
|
|
brew_path_dir="$(dirname "$brew_path")"
|
|
|
|
brew_prefix="$brew_path_dir"/..
|
|
|
|
brew_repo="$brew_path_dir/$(dirname "$(readlink "$brew_path")")"/..
|
|
|
|
tap_dir="$brew_repo"/Library/Taps
|
|
|
|
core_repo="$tap_dir"/homebrew/homebrew-core
|
|
|
|
|
|
|
|
export HOMEBREW_CHANGE_ARCH_TO_ARM=1
|
|
|
|
export HOMEBREW_DEVELOPER=1
|
|
|
|
export HOMEBREW_NO_AUTO_UPDATE=1
|
|
|
|
export HOMEBREW_NO_ENV_HINTS=1
|
|
|
|
export HOMEBREW_NO_INSTALL_CLEANUP=1
|
|
|
|
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
|
|
|
export brew_path
|
|
|
|
export brew_path_dir
|
|
|
|
export brew_prefix
|
|
|
|
export brew_repo
|
|
|
|
export tap_dir
|
|
|
|
export core_repo
|
|
|
|
}
|