Scripts for setting up & maintaining a consistent macOS environment with desired apps & packages.
brew-installs.sh: Script to install casks & packages from Homebrew. Designed to be run many times as things are added or removed. Also does optional updating & cleanup tasks.casks.sh&packages.sh: lists of Homebrew casks & packages to install viabrew-installs.sh.first-time.sh: Script intended for initialization after./brew-installs.shhas been run once. Designed to only be run once.
This script assumes that Homebrew is installed — install via curl command at website.
When using for first time, run:
> ./brew-installs.sh
> ./first-time.shAfterwards, simply run:
> ./brew-installs.shThis repo uses pre-commit to automatically format & lint files before they are committed, & also as part of the required checks before a PR can be merged via pre-commit.ci. See .pre-commit-config.yaml for configuration details.
- Consider creating script that compares list of casks to install in
brew-installs.shto list of applications in/Applications& outputs diff to console output. Use case here is to very quickly check what apps are managed via brew, & which aren't (can create some sort of "ignore" list to not print out obviously non-brew apps, e.g. "App Store", "Calculator", "Messages"), which might be useful when bootstrapping new machine. - Revisit the need for
first-time.sh. Specifically, seems like a convoluted use-case given thatbrew-installs.shis something that is continually updated & re-ran as packages are added. - Figure out how to add other parts of jekyll installation in first-time.sh, e.g. running
gem install jekyllautomatically, figuring out ifsudois needed, etc.- Also, per this & this, it appears that I need to run
gem install webrickto get everything working. - Also note that if gems were installed accidentally before running
source ~/.zshrc(i.e. installed for old ruby version), then they need to be deleted to avoid some errors. Did this by runningrm -rf ~/.gem/ruby/2.6.0.
- Also, per this & this, it appears that I need to run
- Consider adding
pipinstalls into this directory. - Automate the creation of
~/iCloudDrivesymlink:ln -s ~/Library/Mobile\ Documents/com\~apple\~CloudDocs ~/iCloudDrive - Consider adding
shellchecklinter to.pre-commit-config.yaml, see here for an example.