From b420dd99ffaa647cd1d8e97ad4b1e6914b03a811 Mon Sep 17 00:00:00 2001 From: "Deavon M. McCaffery" Date: Tue, 24 Nov 2020 03:50:38 +0000 Subject: [PATCH] WIP --- src/sh/install/darwin.sh | 55 +++++++++++++++++++++++++++++++++------- src/sh/scripts/use-shell | 3 ++- 2 files changed, 48 insertions(+), 10 deletions(-) diff --git a/src/sh/install/darwin.sh b/src/sh/install/darwin.sh index a4ff879..97b5bd4 100755 --- a/src/sh/install/darwin.sh +++ b/src/sh/install/darwin.sh @@ -1,30 +1,67 @@ #!/usr/bin/env sh +set -e + +__am_prompt_ensure_rosetta() { + + # determine if we are on x86 + if [ "$(uname -m)" = "x86_64" ]; then + + # install homebrew using defaults + __am_prompt_install_darwin + + # move on immediately + return $? + fi + + # install rosetta 2 + softwareupdate --install-rosetta --agree-to-license + + # create the homebrew directory + if [ ! -d "/opt/homebrew" ]; then + + # create the homebrew path + sudo mkdir -p /opt/homebrew + + # chown the path + sudo chown /opt/homebrew $(whoami):staff + fi + + # install homebrew in rosetta + __am_prompt_install_darwin x86_64 /usr/local + + # install homebrew for apple silicon + __am_prompt_ensure_rosetta $(uname -m) /opt/homebrew +} + __am_prompt_install_darwin() { local BREWS='openssl git go nvm python' + local ARCH=${1:-"x86-64"} + local HOMEBREW_PREFIX="${2:-/usr/local}" + local BREW_CMD="${HOMEBREW_PREFIX}/bin/brew" - if ! type brew 1>/dev/null 2>&1; then + if ! type "${BREW_CMD}" 1>/dev/null 2>&1; then $ECHO "${CLR_SUCCESS}installing homebrew...${CLR_CLEAR}" - bash -c "CI=true $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh) && brew config" + arch -${ARCH} /bin/bash -c "HOMEBREW_PREFIX=${HOMEBREW_PREFIX} CI=true $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh) && ${BREW_CMD} config" fi $ECHO "${CLR_SUCCESS}updating homebrew...${CLR_CLEAR}" - brew update + ${BREW_CMD} update set +e for pkg in $BREWS; do - if brew list --formula -1 | grep -q "^${pkg}\$"; then + if ${BREW_CMD} list --formula -1 | grep -q "^${pkg}\$"; then $ECHO "${CLR_SUCCESS}upgrading: $pkg...${CLR_CLEAR}" - brew upgrade $pkg 2>/dev/null - brew link --overwrite $pkg 2>/dev/null + ${BREW_CMD} upgrade $pkg 2>/dev/null + ${BREW_CMD} link --overwrite $pkg 2>/dev/null else $ECHO "${CLR_SUCCESS}installing: $pkg...${CLR_CLEAR}" - brew install $pkg + ${BREW_CMD} install $pkg fi done - local NVM_PATH=$(brew --prefix nvm) + local NVM_PATH=$(${BREW_CMD} --prefix nvm) if [ -f "$NVM_PATH/nvm.sh" ]; then $ECHO "${CLR_SUCCESS}setting up nvm...${CLR_CLEAR}" @@ -38,4 +75,4 @@ __am_prompt_install_darwin() { git config --system credential.helper osxkeychain } -__am_prompt_install_darwin +__am_prompt_ensure_rosetta diff --git a/src/sh/scripts/use-shell b/src/sh/scripts/use-shell index 8507dcc..39faebd 100755 --- a/src/sh/scripts/use-shell +++ b/src/sh/scripts/use-shell @@ -48,7 +48,8 @@ __am_prompt_use_shell() { echo "${CLR_SUCCESS}" echo "##############################################################################" echo "##############################################################################" - echo " PLEASE RUN: exec -l \$SHELL # ($SHELL)" + echo " # \$SHELL will be $SHELL" + echo " PLEASE RUN: exec -l \$SHELL" echo "##############################################################################" echo "##############################################################################" echo "${CLR_CLEAR}"