aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:23:26 +0100
committerLibravatar sommerfeld <sommerfeld@sommerfeld.dev>2026-04-21 01:23:26 +0100
commitc8c6fa4fb6685ab4914ff014165a382e9d2db842 (patch)
tree3fe67deecec338dd11954c83b7bd25b8e5a76b15
parent0cd53c5bbad1d9d16e3e65929f9d730dd9ca4ca8 (diff)
downloaddotfiles-c8c6fa4fb6685ab4914ff014165a382e9d2db842.tar.gz
dotfiles-c8c6fa4fb6685ab4914ff014165a382e9d2db842.tar.bz2
dotfiles-c8c6fa4fb6685ab4914ff014165a382e9d2db842.zip
fix: use 'chezmoi init --apply' to regenerate config on template changes
When .chezmoi.toml.tmpl changes (e.g. adding [status] exclude=scripts), plain 'chezmoi apply' warns and keeps using the stale config. Using 'init --apply' regenerates the config from the template and applies in one step. Status does a silent init first for the same reason.
-rwxr-xr-x.githooks/post-commit2
-rw-r--r--justfile5
2 files changed, 4 insertions, 3 deletions
diff --git a/.githooks/post-commit b/.githooks/post-commit
index d2d7eba..ce41b5c 100755
--- a/.githooks/post-commit
+++ b/.githooks/post-commit
@@ -1,2 +1,2 @@
#!/bin/sh
-chezmoi apply -S "$(git rev-parse --show-toplevel)"
+chezmoi init --apply -S "$(git rev-parse --show-toplevel)"
diff --git a/justfile b/justfile
index 716f7ed..8191241 100644
--- a/justfile
+++ b/justfile
@@ -2,9 +2,9 @@
install-hooks:
git config core.hooksPath .githooks
-# Deploy dotfiles
+# Deploy dotfiles (regenerates config from template if it changed)
apply:
- chezmoi apply -S .
+ chezmoi init --apply -S .
# Install packages from one or more groups (e.g. just install base dev wayland)
install *groups:
@@ -80,6 +80,7 @@ status:
done
echo ""
echo "=== Dotfile drift ==="
+ chezmoi init -S . >/dev/null 2>&1 || true
chezmoi status -S . || true
# Show install coverage for each group (or full breakdown for one group)