Files
bootstrap_dev_env/README.md
Claude 658460fe4c port: rewrite bootstrap tool in Go
Replace the Python bootstrap script with a Go implementation that
cross-compiles to native binaries for Linux and macOS on x86_64 and
aarch64. The Go port preserves all sections of the original (system
packages, optional Flatpak GUI apps, custom downloads, and the macOS
firecracker VM bridge) and adds first-class pacman support so the tool
works on Arch-family distros alongside Debian, RHEL, and macOS.

A Makefile produces a host binary via `make build` and the full
four-target matrix under dist/ via `make build-all`.
2026-05-22 21:48:57 +00:00

1.3 KiB

bootstrap_dev_env

A Go-based bootstrap tool that installs a development environment across macOS, Debian/Ubuntu, RHEL/Fedora, and Arch Linux on x86_64 and aarch64. It installs system packages, optional Flatpak GUI apps, and a set of custom third-party tools (Go, Neovim, Zig, NVM, pyenv, oh-my-zsh, Firecracker on Linux).

Install

Download the native binary for your platform from a release, or build from source:

git clone https://github.com/JMR-dev/bootstrap_dev_env.git
cd bootstrap_dev_env
make build           # builds ./bootstrap_environment for the host

To produce native binaries for all four supported targets at once:

make build-all       # writes dist/bootstrap_environment-{linux,darwin}-{amd64,arm64}

Usage

# Linux (do NOT use sudo on macOS — Homebrew refuses to run as root)
sudo ./bootstrap_environment [--only system|flatpak|custom] [--gui]

# macOS
./bootstrap_environment [--only system|custom] [--gui] [--no-vm]

Flags:

  • --only — restrict to one section (system, flatpak, or custom).
  • --gui — include GUI applications and the Flatpak section. Default is headless: both are skipped.
  • --no-vm — macOS only: skip provisioning the Fedora-on-QEMU/VirtualBox VM that backs the firecracker() zsh wrapper.

Package lists live in packages.go. Edit and rebuild.