From 923669839f07438757e858b69ce37fba5db2101f Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 12:35:21 -0500 Subject: [PATCH 01/15] use nvm, assume it's being executed by zsh --- osx_setup/.npmrc | 1 + osx_setup/default-packages | 1 + osx_setup/dev_setup | 53 +++++++++++++++++++++----------------- 3 files changed, 32 insertions(+), 23 deletions(-) create mode 100644 osx_setup/.npmrc create mode 100644 osx_setup/default-packages diff --git a/osx_setup/.npmrc b/osx_setup/.npmrc new file mode 100644 index 0000000..91f605b --- /dev/null +++ b/osx_setup/.npmrc @@ -0,0 +1 @@ +update-notifier=false \ No newline at end of file diff --git a/osx_setup/default-packages b/osx_setup/default-packages new file mode 100644 index 0000000..0cd82b6 --- /dev/null +++ b/osx_setup/default-packages @@ -0,0 +1 @@ +yarn \ No newline at end of file diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 6c4ed60..8f60d75 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/zsh ## end setup on fail set -e @@ -6,33 +6,40 @@ set -e echo "Installing Homebrew" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -if [[ "$(uname -m)" == "arm64" ]]; then - echo "Arm64 detected, adding homebrew to path" - echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.profile - eval "$(/opt/homebrew/bin/brew shellenv)" - source ~/.profile -fi +# if [[ "$(uname -m)" == "arm64" ]]; then +# echo "Arm64 detected, adding homebrew to path" +# echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.profile +# eval "$(/opt/homebrew/bin/brew shellenv)" +# source ~/.profile +# fi -clear - -echo "Installing awscli, nodejs, python, cask" -brew install --force awscli node@20 python cask -brew upgrade --force awscli node@20 python cask -echo 'export PATH=/usr/local/opt/node@20/bin:$PATH' >> ~/.zprofile -source ~/.zprofile +echo "Installing Oh My ZSH" +OVERWRITE_CONFIRMATION="no" +sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended clear -echo "Installing yarn" -sudo npm i -g yarn - -echo "Install mysqlworkbench, firefox, sublime text, cyberduck, vscode, docker" -brew install --cask --force mysqlworkbench firefox sublime-text postman cyberduck visual-studio-code docker +cd /opt/homebrew/bin +echo "Installing awscli, python" +brew install --force awscli python +brew upgrade --force awscli python +echo "Install firefox, sublime text, cyberduck, vscode, docker" +brew install --cask --force firefox sublime-text postman cyberduck visual-studio-code docker-desktop clear brew doctor -echo "Installing Oh My ZSH" -curl -L http://install.ohmyz.sh | sh clear - -echo "Install complete!" +echo "Installing nvm" +# install nvm without touching .zshrc +bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash' +echo "nvm installed" +cp default-packages ~/.nvm/default-packages +echo "Installing latest node.js LTS version" +cd ~/.nvm +nvm install --lts +echo "Node.js LTS and yarn are installed" + +echo "copying .npmrc to silence npm updates" +cp .npmrc ~/.npmrc +echo "npm configured" +echo "Install complete, restart your shell and/or system!" From 23184334b7a492220d293e085bdcf607397012ae Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 12:45:37 -0500 Subject: [PATCH 02/15] use more secure algorithm for SSH key --- osx_setup/github-keygen | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osx_setup/github-keygen b/osx_setup/github-keygen index 462add7..6a92227 100644 --- a/osx_setup/github-keygen +++ b/osx_setup/github-keygen @@ -8,7 +8,7 @@ CONFIG_FILE=$CONFIG_PATH/config mkdir -p $CONFIG_PATH -ssh-keygen -t rsa -f ~/.ssh/$KEY_NAME -q -P "" +ssh-keygen -t ed25519 -f ~/.ssh/$KEY_NAME -q -P "" echo "Host github.com User git From 108b9c39867cfe980c590125ca1179e73d551263 Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 12:51:00 -0500 Subject: [PATCH 03/15] make script self-contained again --- osx_setup/.npmrc | 1 - osx_setup/default-packages | 1 - osx_setup/dev_setup | 6 ++++-- 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 osx_setup/.npmrc delete mode 100644 osx_setup/default-packages diff --git a/osx_setup/.npmrc b/osx_setup/.npmrc deleted file mode 100644 index 91f605b..0000000 --- a/osx_setup/.npmrc +++ /dev/null @@ -1 +0,0 @@ -update-notifier=false \ No newline at end of file diff --git a/osx_setup/default-packages b/osx_setup/default-packages deleted file mode 100644 index 0cd82b6..0000000 --- a/osx_setup/default-packages +++ /dev/null @@ -1 +0,0 @@ -yarn \ No newline at end of file diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 8f60d75..6576eb7 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -36,10 +36,12 @@ echo "nvm installed" cp default-packages ~/.nvm/default-packages echo "Installing latest node.js LTS version" cd ~/.nvm +echo "yarn" >> default-packages nvm install --lts echo "Node.js LTS and yarn are installed" -echo "copying .npmrc to silence npm updates" -cp .npmrc ~/.npmrc +echo "config npm to silence npm update notifier" +cd ~ +echo "update-notifier=false" >> .npmrc echo "npm configured" echo "Install complete, restart your shell and/or system!" From c2256bf577321890ea49a0192a0a25839b3a4622 Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 12:57:51 -0500 Subject: [PATCH 04/15] fix links in README, minor change in dev_setup --- README.md | 12 ++++++------ osx_setup/dev_setup | 5 ++++- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 8adf88e..b6904fe 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,15 @@ # Dev computer set up -### Main OSX setup +## Main OSX setup -``` -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/newsdaycom/dev/master/osx_setup/dev_setup)" +``` sh +/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/faizjamil/newsday-dev-setup/master/osx_setup/dev_setup)" ``` -### GitHub keys +## GitHub keys Generates and links your GitHub keys. Copy/paste the output from this into GitHub as your public key -``` -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/newsdaycom/dev/master/osx_setup/github-keygen)" +``` sh +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/faizjamil/newsday-dev-setup/master/osx_setup/github-keygen)" ``` diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 6576eb7..c639716 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -22,13 +22,16 @@ cd /opt/homebrew/bin echo "Installing awscli, python" brew install --force awscli python brew upgrade --force awscli python -echo "Install firefox, sublime text, cyberduck, vscode, docker" +echo "Installing firefox, sublime text, cyberduck, vscode, docker" brew install --cask --force firefox sublime-text postman cyberduck visual-studio-code docker-desktop clear brew doctor clear +# WE ARE USING NVM INSTEAD OF INSTALLING NODE THROUGH HOMEBREW BECAUSE +# 1. NODE GETS A NEW LTS VERSION EVERY YEAR +# 2. YOU DON'T HAVE TO COMPILE NODE FROM SOURCE WHEN YOUR MACOS VERSION IS UNSUPPORTED BY HOMEBREW echo "Installing nvm" # install nvm without touching .zshrc bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash' From 2799fef249f2472763ccb01eb0118da54c444ecd Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 13:25:46 -0500 Subject: [PATCH 05/15] uncomment code to add brew to PATH as brew installer does not do this for you --- osx_setup/dev_setup | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index c639716..fbd6550 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -3,22 +3,22 @@ ## end setup on fail set -e -echo "Installing Homebrew" -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - -# if [[ "$(uname -m)" == "arm64" ]]; then -# echo "Arm64 detected, adding homebrew to path" -# echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.profile -# eval "$(/opt/homebrew/bin/brew shellenv)" -# source ~/.profile -# fi - echo "Installing Oh My ZSH" OVERWRITE_CONFIRMATION="no" sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended - +echo "Oh My ZSH installed" clear -cd /opt/homebrew/bin + +echo "Installing Homebrew" +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + +if [[ "$(uname -m)" == "arm64" ]]; then + echo "Arm64 detected, adding homebrew to path" + echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc + eval "$(/opt/homebrew/bin/brew shellenv)" + source ~/.zshrc +fi +echo "Homebrew installed and PATH configured" echo "Installing awscli, python" brew install --force awscli python brew upgrade --force awscli python @@ -33,18 +33,15 @@ clear # 1. NODE GETS A NEW LTS VERSION EVERY YEAR # 2. YOU DON'T HAVE TO COMPILE NODE FROM SOURCE WHEN YOUR MACOS VERSION IS UNSUPPORTED BY HOMEBREW echo "Installing nvm" -# install nvm without touching .zshrc bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash' echo "nvm installed" cp default-packages ~/.nvm/default-packages echo "Installing latest node.js LTS version" -cd ~/.nvm -echo "yarn" >> default-packages +echo "yarn" >> ~/.nvm/default-packages nvm install --lts echo "Node.js LTS and yarn are installed" echo "config npm to silence npm update notifier" -cd ~ -echo "update-notifier=false" >> .npmrc +echo "update-notifier=false" >> ~/.npmrc echo "npm configured" echo "Install complete, restart your shell and/or system!" From edc7b753763fa3dc87508ca64720a31bf02f9323 Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Tue, 2 Dec 2025 13:31:47 -0500 Subject: [PATCH 06/15] dekete copy command --- osx_setup/dev_setup | 1 - 1 file changed, 1 deletion(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index fbd6550..9498794 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -35,7 +35,6 @@ clear echo "Installing nvm" bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash' echo "nvm installed" -cp default-packages ~/.nvm/default-packages echo "Installing latest node.js LTS version" echo "yarn" >> ~/.nvm/default-packages nvm install --lts From 3ebbe2d492b2b8a0fa40bba26ead34f24a3ec416 Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Thu, 4 Dec 2025 09:43:33 -0500 Subject: [PATCH 07/15] add back installing mysqlworkbench --- osx_setup/dev_setup | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 9498794..5680bda 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -22,8 +22,8 @@ echo "Homebrew installed and PATH configured" echo "Installing awscli, python" brew install --force awscli python brew upgrade --force awscli python -echo "Installing firefox, sublime text, cyberduck, vscode, docker" -brew install --cask --force firefox sublime-text postman cyberduck visual-studio-code docker-desktop +echo "Installing mysqlworkbench, firefox, sublime text, postman, cyberduck, vscode, docker" +brew install --cask --force mysqlworkbench firefox sublime-text postman cyberduck visual-studio-code docker-desktop clear brew doctor From 619856571525a3fa754875de55bf3f381bc1ed6b Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Thu, 4 Dec 2025 09:49:30 -0500 Subject: [PATCH 08/15] install git, slack, zoom, and studio-3t-community --- osx_setup/dev_setup | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 5680bda..1955e3d 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -19,11 +19,11 @@ if [[ "$(uname -m)" == "arm64" ]]; then source ~/.zshrc fi echo "Homebrew installed and PATH configured" -echo "Installing awscli, python" -brew install --force awscli python -brew upgrade --force awscli python -echo "Installing mysqlworkbench, firefox, sublime text, postman, cyberduck, vscode, docker" -brew install --cask --force mysqlworkbench firefox sublime-text postman cyberduck visual-studio-code docker-desktop +echo "Installing awscli, git, python" +brew install --force awscli git python +brew upgrade --force awscli git python +echo "Installing mysqlworkbench, firefox, google-chrome, slack, studio-3t-community, postman, cyberduck, vscode, docker, zoom" +brew install --cask --force mysqlworkbench firefox google-chrome slack studio-3t-community postman cyberduck visual-studio-code docker-desktop zoom clear brew doctor From 3ed886dd3100a2a64cd3dd97a52b5986ce4841dd Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Thu, 4 Dec 2025 10:01:58 -0500 Subject: [PATCH 09/15] output that yarn will be installed --- osx_setup/dev_setup | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 1955e3d..b1a048c 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -21,6 +21,7 @@ fi echo "Homebrew installed and PATH configured" echo "Installing awscli, git, python" brew install --force awscli git python +# i don't know why TC put this upgrade line in, but i'll keep it here just in case brew upgrade --force awscli git python echo "Installing mysqlworkbench, firefox, google-chrome, slack, studio-3t-community, postman, cyberduck, vscode, docker, zoom" brew install --cask --force mysqlworkbench firefox google-chrome slack studio-3t-community postman cyberduck visual-studio-code docker-desktop zoom @@ -35,7 +36,7 @@ clear echo "Installing nvm" bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash' echo "nvm installed" -echo "Installing latest node.js LTS version" +echo "Installing latest node.js LTS version and yarn" echo "yarn" >> ~/.nvm/default-packages nvm install --lts echo "Node.js LTS and yarn are installed" From 2efa018765807243d07b276b21f79471ef906e0f Mon Sep 17 00:00:00 2001 From: Faizan Jamil <6825546+faizjamil@users.noreply.github.com> Date: Thu, 4 Dec 2025 10:03:23 -0500 Subject: [PATCH 10/15] use git bundled with xcode command line tools --- osx_setup/dev_setup | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index b1a048c..5ce33c2 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -3,6 +3,9 @@ ## end setup on fail set -e +echo "Installing Xcode Command Line Tools" +xcode-select --install +echo "Xcode Command Line Tools installed" echo "Installing Oh My ZSH" OVERWRITE_CONFIRMATION="no" sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended @@ -19,10 +22,10 @@ if [[ "$(uname -m)" == "arm64" ]]; then source ~/.zshrc fi echo "Homebrew installed and PATH configured" -echo "Installing awscli, git, python" -brew install --force awscli git python +echo "Installing awscli, python" +brew install --force awscli python # i don't know why TC put this upgrade line in, but i'll keep it here just in case -brew upgrade --force awscli git python +brew upgrade --force awscli python echo "Installing mysqlworkbench, firefox, google-chrome, slack, studio-3t-community, postman, cyberduck, vscode, docker, zoom" brew install --cask --force mysqlworkbench firefox google-chrome slack studio-3t-community postman cyberduck visual-studio-code docker-desktop zoom clear From 31c8c2bbad8db422747edaf1554d7bcce6bde2d8 Mon Sep 17 00:00:00 2001 From: Faizan Jamil Date: Wed, 21 Jan 2026 14:37:32 -0500 Subject: [PATCH 11/15] change URLs back to point to newsdaycom repo for when this PR is merged --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b6904fe..e800270 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ ## Main OSX setup ``` sh -/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/faizjamil/newsday-dev-setup/master/osx_setup/dev_setup)" +/bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/newsdaycom/dev/master/osx_setup/dev_setup)" ``` ## GitHub keys @@ -11,5 +11,5 @@ Generates and links your GitHub keys. Copy/paste the output from this into GitHub as your public key ``` sh -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/faizjamil/newsday-dev-setup/master/osx_setup/github-keygen)" +/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/newsdaycom/dev/master/osx_setup/github-keygen)" ``` From f64d7b4cc005aafca85770f4099e89f57b1492f4 Mon Sep 17 00:00:00 2001 From: Faizan Jamil Date: Wed, 21 Jan 2026 14:46:28 -0500 Subject: [PATCH 12/15] temporairly don't end setup on fail --- osx_setup/dev_setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 5ce33c2..d809520 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -1,7 +1,7 @@ #!/bin/zsh ## end setup on fail -set -e +# set -e echo "Installing Xcode Command Line Tools" xcode-select --install From b7735a589c8a772c89138cbab1ae7a865b1df12e Mon Sep 17 00:00:00 2001 From: Faizan Jamil Date: Wed, 21 Jan 2026 14:50:15 -0500 Subject: [PATCH 13/15] temporairly do not install xcode command line tools --- osx_setup/dev_setup | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index d809520..1df5fe3 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -3,9 +3,9 @@ ## end setup on fail # set -e -echo "Installing Xcode Command Line Tools" -xcode-select --install -echo "Xcode Command Line Tools installed" +# echo "Installing Xcode Command Line Tools" +# xcode-select --install +# echo "Xcode Command Line Tools installed" echo "Installing Oh My ZSH" OVERWRITE_CONFIRMATION="no" sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended From 709f2650ec5b30a0645286d161512e251cd380fc Mon Sep 17 00:00:00 2001 From: Faizan Jamil Date: Wed, 21 Jan 2026 14:55:03 -0500 Subject: [PATCH 14/15] remove logic to install xcode command line tools, brew install can handle that --- osx_setup/dev_setup | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index 1df5fe3..f6683e9 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -1,11 +1,8 @@ #!/bin/zsh ## end setup on fail -# set -e +set -e -# echo "Installing Xcode Command Line Tools" -# xcode-select --install -# echo "Xcode Command Line Tools installed" echo "Installing Oh My ZSH" OVERWRITE_CONFIRMATION="no" sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended From 5dca3d2e4893488e3f5883eab50e41da763df00c Mon Sep 17 00:00:00 2001 From: Faizan Jamil Date: Wed, 21 Jan 2026 14:56:30 -0500 Subject: [PATCH 15/15] echo now matches brew package names --- osx_setup/dev_setup | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osx_setup/dev_setup b/osx_setup/dev_setup index f6683e9..1c89451 100644 --- a/osx_setup/dev_setup +++ b/osx_setup/dev_setup @@ -23,7 +23,7 @@ echo "Installing awscli, python" brew install --force awscli python # i don't know why TC put this upgrade line in, but i'll keep it here just in case brew upgrade --force awscli python -echo "Installing mysqlworkbench, firefox, google-chrome, slack, studio-3t-community, postman, cyberduck, vscode, docker, zoom" +echo "Installing mysqlworkbench, firefox, google-chrome, slack, studio-3t-community, postman, cyberduck, visual-studio-code, docker-desktop, zoom" brew install --cask --force mysqlworkbench firefox google-chrome slack studio-3t-community postman cyberduck visual-studio-code docker-desktop zoom clear