From 9b1196d7f79028ed7693ba31412a6088561ddc1f Mon Sep 17 00:00:00 2001 From: Marley Rae Date: Mon, 22 Jan 2024 20:36:34 -0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20Actually=20install=20Homebrew=20who?= =?UTF-8?q?ops?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- homebrew/brew.sh | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ script/dot.sh | 25 +++++++++++++++ 2 files changed, 105 insertions(+) diff --git a/homebrew/brew.sh b/homebrew/brew.sh index e69de29..23c9412 100755 --- a/homebrew/brew.sh +++ b/homebrew/brew.sh @@ -0,0 +1,80 @@ +#!/usr/bin/env bash +# vim:set ft=bash: + +cd "$(dirname "${BASH_SOURCE[0]}")" \ + && . "../script/utils.sh" + +################################################################################ +# Install # +################################################################################ + +install() +{ + if test ! $(which brew); then + NONINTERACTIVE=1 \ + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \ + &> /dev/null + + print_result $? "Install" + fi +} + +################################################################################ +# Add to Path # +################################################################################ + +add_to_path() +{ + if command -v brew &> /dev/null; then + return + fi + + HARDWARE="$(uname -m)" + prefix="" + + if [[ "$(uname)" == "Linux" ]]; then + prefix="/home/linuxbrew/.linuxbrew" + elif [[ "$HARDWARE" == "arm64" ]]; then + prefix="/opt/homebrew" + elif [[ "$HARDWARE" == "x86_64" ]]; then + prefix="/usr/local" + else + print_error "Homebrew is only supported on macOS Intel/ARM or Linux!" + fi + + PATH="$prefix/bin:$PATH" + + command -v brew &> /dev/null + print_result $? "Add to PATH" +} + +################################################################################ +# Update & Upgrade # +################################################################################ + +update() +{ + execute "brew update" "Update" +} + +upgrade() +{ + execute "brew upgrade" "Upgrade" +} + +################################################################################ +# Main # +################################################################################ + +main() +{ + print_title "Homebrew" + + install + add_to_path + + update + upgrade +} + +main diff --git a/script/dot.sh b/script/dot.sh index 4c77327..72eb0b7 100755 --- a/script/dot.sh +++ b/script/dot.sh @@ -122,6 +122,28 @@ download_dotfiles() || return 1 } +################################################################################ +# Xcode # +################################################################################ + +are_xcode_cli_tools_installed() +{ + xcode-select --print-path &> /dev/null +} + +install_xcode_cli_toools() +{ + print_title "Xcode" + + if [[ "$(uname)" == "Darwin" ]]; then + xcode-select --install &> /dev/null + + execute \ + "until are_xcode_cli_tools_installed; do sleep 5; done" \ + "Install Xcode Command Line Tools" + fi +} + ################################################################################ # Setup Gitconfig # ################################################################################ @@ -317,10 +339,13 @@ main() $dotfiles_dir/os/pref.sh + install_xcode_cli_toools + $dotfiles_dir/homebrew/brew.sh # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + print_title "Installers" find . -name install.sh | while read installer ; do sh -c "${installer}" ; done # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -