66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
# 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 pre-built binary for your platform and make it executable.
|
|
|
|
Using **curl**:
|
|
|
|
```shell
|
|
curl -Lo bootstrap_environment "https://github.com/JMR-dev/bootstrap_dev_env/releases/latest/download/bootstrap_environment-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/arm64/arm64/')"
|
|
chmod +x bootstrap_environment
|
|
```
|
|
|
|
Using **wget**:
|
|
|
|
```shell
|
|
wget -O bootstrap_environment "https://github.com/JMR-dev/bootstrap_dev_env/releases/latest/download/bootstrap_environment-$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m | sed 's/x86_64/amd64/; s/aarch64/arm64/; s/arm64/arm64/')"
|
|
chmod +x bootstrap_environment
|
|
```
|
|
|
|
## Usage
|
|
|
|
```shell
|
|
# 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.
|
|
|
|
## Build from Source
|
|
|
|
If you prefer to build the tool yourself, or if you are making custom modifications:
|
|
|
|
1. Clone the repository:
|
|
```shell
|
|
git clone https://github.com/JMR-dev/bootstrap_dev_env.git
|
|
cd bootstrap_dev_env
|
|
```
|
|
|
|
2. Build for the current host platform:
|
|
```shell
|
|
make build # builds ./bootstrap_environment for the host
|
|
```
|
|
|
|
To cross-compile binaries for all supported targets at once:
|
|
```shell
|
|
make build-all # writes dist/bootstrap_environment-{linux,darwin}-{amd64,arm64}
|
|
```
|