This is my simple solution for automating the full setup of my main development machine (only MacOS for now) using Nushell scripts.
Run the following command in a terminal on the target machine:
curl -sSfL https://raw.githubusercontent.com/MurtadhaInit/dotfiles/refs/heads/main/bootstrap.bash | bashNote: the scripts are designed to be idempotent with checks in place, so running them again won't necessarily redo the defined tasks.
- Dotfiles: configuration files for apps and CLI tools I regularly use.
- Among those is my NeoVim config as a Git submodule.
- Brewfile: a list of every GUI and CLI tool I'm currently using on my MacOS machine, as well as App Store apps and VSCode extensions.
- Nushell scripts: in the
system-setupdirectory to automate setting up a new machine from scratch.
- The bootstrap Bash script does the following in order:
- Install Git, Homebrew (on MacOS), and nu if not present.
- Clone this repository to
~/.dotfiles. - Initiate the setup process by executing
start.nu, passing in any provided arguments.
- The start script will detect the operating system and execute the scripted tasks in the relevant directory in
system-setup, skipping (or selecting) ones based on the arguments being passed either interactively or programmatically (if you fork the repo and edit the script).
- Create the required directories
- Symlink all dotfiles using GNU Stow
- Setup ZSH
- Install the latest version with Homebrew
- Make it the default interactive shell for the current user
- Switch the default location it looks for its configuration files to be
~/.config/zsh
- Install a handful of CLI tools and application defined in a separate file using Homebrew
- Setup Node
- Install
fnm - Install the latest and the latest LTS versions of Node
- Install
- Setup Python
- Install
pyenv - Download the use the latest Python 3 version
- Install
- Setup
bat(Install it and setup its themes) - Setup
Warp(Install it and setup its themes) - Clone a defined set of repositories to their destinations
- Setup Go
- Install
gobrew - Install the latest version of Go
- Install
- Setup
tmux(Installation and plugins) - Use a
Brewfileto install everything else (formulas, casks, and App Store apps) with Homebrew, which will require an Apple ID log in.