Skip to content

Setup files for my personal development environment

License

Notifications You must be signed in to change notification settings

jmgilman/dev-setup

Repository files navigation

dev-setup

A bash script for configuring an M1 MacBook Pro development environment

Usage

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

Overview

The setup script takes care of the following:

  1. Global system values (i.e. hiding dock)
  2. Global CLI tools
  3. User-specific development tools
  4. User-specific GUI applications
  5. User-specific dotfiles and shell configurations

The result is a complete development environment with all needed tools available.

Architecture

The setup script utilizes three primary tools for bootstrapping.

Nix

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.

Brew

The brew package manager is installed onto the system. All GUI applications are installed using brew through a given bundle file.

Chezmoi

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

Development dependencies are handled by Nix:

nix develop

Alternatively, you can use direnv to automatically enable the environment:

direnv allow

Contributing

Check out the issues for items needing attention or submit your own and then:

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

About

Setup files for my personal development environment

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published