aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/remote-dev
diff options
context:
space:
mode:
Diffstat (limited to 'remote-dev')
-rw-r--r--remote-dev/README.md23
-rw-r--r--remote-dev/justfile21
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