diff options
Diffstat (limited to 'remote-dev')
| -rw-r--r-- | remote-dev/README.md | 23 | ||||
| -rw-r--r-- | remote-dev/justfile | 21 |
2 files changed, 34 insertions, 10 deletions
diff --git a/remote-dev/README.md b/remote-dev/README.md index 455b108..4622f31 100644 --- a/remote-dev/README.md +++ b/remote-dev/README.md @@ -30,24 +30,27 @@ GitHub on first launch. ## Updating after a dotfiles change -Two flavours of update: +Run from `~/.local/share/dotfiles/remote-dev`: ```sh -# (a) Config-only change (nvim/zellij/zsh/git/ssh): no rebuild needed. -git -C ~/.local/share/dotfiles pull +just update # pull + home-manager switch (handles everything) +``` + +Or piece-by-piece if you know which one you need: -# (b) Package set in home.nix changed: rebuild HM. -cd ~/.local/share/dotfiles/remote-dev -home-manager switch --impure --flake '.#vm' -b backup +```sh +just pull # config-only changes (nvim/zellij/zsh/git/ssh): no rebuild needed +just switch # rebuild home-manager from the current checkout ``` -> The flake ref is single-quoted because the shared zshrc enables -> `extendedglob`, which would otherwise interpret `.#vm` as a glob pattern -> and fail with `zsh: no matches found`. +> `just update` runs `pull` then `switch`. The home-manager invocation +> uses `--impure --flake '.#vm' -b backup`; the single-quotes around the +> flake ref matter because our zsh enables `extendedglob`, which would +> otherwise interpret `.#vm` as a glob pattern. ## Adding a tool -Edit `home.nix`, add to `home.packages`, then `home-manager switch`. +Edit `home.nix`, add to `home.packages`, then `just switch` (or `just update`). ## Single-shell policy (leaf tools only) diff --git a/remote-dev/justfile b/remote-dev/justfile new file mode 100644 index 0000000..db254df --- /dev/null +++ b/remote-dev/justfile @@ -0,0 +1,21 @@ +# Recipes for the remote-dev VM. Run from ~/.local/share/dotfiles/remote-dev. + +# Show available recipes (default) +default: + @just --list + +# Pull latest dotfiles and rebuild Home-Manager profile +update: pull switch + +# Pull latest dotfiles only (config-only changes, no nix rebuild) +pull: + git -C {{ justfile_directory() }}/.. pull --ff-only + +# Rebuild Home-Manager profile from the current checkout (no pull) +switch: + home-manager switch --impure --flake '{{ justfile_directory() }}#vm' -b backup + +# Garbage-collect old home-manager generations and nix store +gc: + home-manager expire-generations '-7 days' + nix-collect-garbage -d |
