Last active
February 12, 2021 18:40
-
-
Save Neener54/bdc843b6660c01db002d5f66e944bda8 to your computer and use it in GitHub Desktop.
Computer Provisioning
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# Install some stuff before others! | |
important_casks=( | |
authy | |
dropbox | |
google-chrome | |
spotify | |
slack | |
zoomus | |
) | |
casks=( | |
firefox | |
macdown | |
sequelpro | |
) | |
######################################## End of app list ######################################## | |
set +e | |
set -x | |
function install { | |
cmd=$1 | |
shift | |
for pkg in "$@"; | |
do | |
exec="$cmd $pkg" | |
#prompt "Execute: $exec" | |
if ${exec} ; then | |
echo "Installed $pkg" | |
else | |
echo "Failed to execute: $exec" | |
if [[ ! -z "${CI}" ]]; then | |
exit 1 | |
fi | |
fi | |
done | |
} | |
function brew_install_or_upgrade { | |
if brew ls --versions "$1" >/dev/null; then | |
if (brew outdated | grep "$1" > /dev/null); then | |
echo "Upgrading already installed package $1 ..." | |
brew upgrade "$1" | |
else | |
echo "Latest $1 is already installed" | |
fi | |
else | |
brew install "$1" | |
fi | |
} | |
if [[ -z "${CI}" ]]; then | |
sudo -v # Ask for the administrator password upfront | |
# Keep-alive: update existing `sudo` time stamp until script has finished | |
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null & | |
fi | |
if test ! "$(command -v brew)"; then | |
prompt "Install Homebrew" | |
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" | |
else | |
if [[ -z "${CI}" ]]; then | |
prompt "Update Homebrew" | |
brew update | |
brew upgrade | |
brew doctor | |
fi | |
fi | |
export HOMEBREW_NO_AUTO_UPDATE=1 | |
echo "Install important software ..." | |
brew tap homebrew/cask-versions | |
install 'brew install --cask ' "${important_casks[@]}" | |
prompt "Install packages" | |
install 'brew_install_or_upgrade' "${brews[@]}" | |
prompt "Install software" | |
install 'brew install --cask ' "${casks[@]}" | |
prompt "Update packages" | |
prompt "Cleanup" | |
brew cleanup | |
echo "Run [mackup restore] after DropBox has done syncing ..." | |
echo "Done!" | |
#"Check for software updates daily, not just once per week" | |
defaults write com.apple.SoftwareUpdate ScheduleFrequency -int 1 | |
#"Setting trackpad & mouse speed to a reasonable number" | |
defaults write -g com.apple.trackpad.scaling 2 | |
defaults write -g com.apple.mouse.scaling 2.5 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
/bin/bash -c "$(curl -fsSL https://gist.githubusercontent.com/Neener54/bdc843b6660c01db002d5f66e944bda8/raw/c459da6c4d45cab85396371a1fd7f217594f502d/setup.sh)"