Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Reproducible, idempotent bootstrap for Ubuntu 24.04 that installs a full develop
Replace `<REPO_URL>` with your GitHub repo URL:

```bash
git clone <REPO_URL> ~/.dotfiles && ~/.dotfiles/bootstrap/install.sh
git clone <REPO_URL> ~/.dotfiles && bash ~/.dotfiles/bootstrap/install.sh
```

## WSL2 systemd requirement (mandatory for Podman rootless)
Expand Down Expand Up @@ -79,14 +79,14 @@ INSTALL_VSCODE_LINUX=1 ./bootstrap/install.sh
```bash
./bootstrap/steps/90-doctor.sh
```
If the installer is not executable, either run:

## Notes & assumptions
```bash
chmod +x ./bootstrap/install.sh
```

or execute it explicitly:

- Ubuntu 24.04 only. Other distros/versions are rejected by preflight.
- WSL best practice: keep repos inside the Linux filesystem (e.g. `~/src`), not `/mnt/c`.
- Dotfiles are managed by chezmoi; re-running the installer reapplies the repo state.
- After opening a new shell, run `p10k configure` to personalize the Powerlevel10k prompt.
- Neovim and lazygit use GitHub “latest release” assets resolved at install time.
- `zsh-syntax-highlighting` must remain last in the plugins list; this repo enforces that ordering.
- The mise installer URL is assumed to be `https://mise.run` (official). Update it if upstream changes.
- For deterministic toolchains, pin exact versions in `mise/mise.toml`. A `mise.lock` can be generated and committed using mise tooling when needed.
```bash
bash ./bootstrap/install.sh
```
2 changes: 1 addition & 1 deletion bootstrap/lib/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ download_to_tmp() {
local url tmp
url="$1"
tmp="$(mktemp)"
log "Downloading ${url}"
log "Downloading ${url}" >&2
curl -fsSL "${url}" -o "${tmp}"
printf '%s' "${tmp}"
}
Expand Down
8 changes: 8 additions & 0 deletions bootstrap/steps/30-mise.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,5 +26,13 @@ config_src="${BOOTSTRAP_ROOT}/mise/mise.toml"
config_dest="${HOME}/.config/mise/config.toml"
link_file "${config_src}" "${config_dest}"

if mise trust --help 2>/dev/null | grep -q -- '--yes'; then
mise trust --yes "${config_dest}"
elif mise trust --help 2>/dev/null | grep -q -- '-y'; then
mise trust -y "${config_dest}"
else
yes | mise trust "${config_dest}"
fi

log "Installing mise toolchains"
MISE_CONFIG_FILE="${config_src}" mise install
5 changes: 4 additions & 1 deletion bootstrap/steps/60-dotfiles.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,10 @@ if ! have_cmd chezmoi; then
install_url="https://get.chezmoi.io"
tmpfile="$(download_to_tmp "${install_url}")"
mkdir -p "${HOME}/.local/bin"
bash "${tmpfile}" -- -b "${HOME}/.local/bin"
if ! sh "${tmpfile}" -- -b "${HOME}/.local/bin"; then
warn "chezmoi installer failed with -- -b, retrying with -b"
sh "${tmpfile}" -b "${HOME}/.local/bin"
fi
rm -f "${tmpfile}"
fi

Expand Down
Loading