A bash script for configuring an M1 MacBook Pro development environment
Download the setup script and validate the checksum:
curl -s https://raw.githubusercontent.com/jmgilman/dev-setup/master/setup.sh -o setup.sh && \
curl -s https://raw.githubusercontent.com/jmgilman/dev-setup/master/setup.sh.sha256 -o setup.sh.sha256 && \
shasum -a 256 -c setup.sh.sha256
Run the setup script:
bash setup.sh
The setup script takes care of the following:
- Global system values (i.e. hiding dock)
- Global CLI tools
- User-specific development tools
- User-specific GUI applications
- User-specific dotfiles and shell configurations
The result is a complete development environment with all needed tools available.
The setup script utilizes three primary tools for bootstrapping.
Nix is installed onto the system in multi-user mode. Additionally, the
nix-darwin
and home-manager
packages are also installed and configured on
the system. The nix-darwin
package is installed using the default installer
and the environment is later built by a provided flake file.
The brew
package manager is installed onto the system. All GUI applications
are installed using brew
through a given bundle
file.
Chezmoi is ran in an isolated environment (using nix shell
) and is used to
pull down dotfiles. Chezmoi is what provides nix-darwin
and brew
the needed
configurations for performing the bootstrap process.
Development dependencies are handled by Nix:
nix develop
Alternatively, you can use direnv
to automatically enable the environment:
direnv allow
Check out the issues for items needing attention or submit your own and then:
- Fork the repo
- Create your feature branch (git checkout -b feature/fooBar)
- Commit your changes (git commit -am 'Add some fooBar')
- Push to the branch (git push origin feature/fooBar)
- Create a new Pull Request