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.