diff options
| author | 2026-05-13 13:43:16 +0100 | |
|---|---|---|
| committer | 2026-05-13 13:43:16 +0100 | |
| commit | 208877d1e682536aa737748fffe4560956d3908a (patch) | |
| tree | bbc2e909a312f8052bf9457b1521e8b0ef80ec4c /.chezmoi.toml.tmpl | |
| parent | d7cca9eca321a7986605c2842cf23cef18727452 (diff) | |
| download | dotfiles-208877d1e682536aa737748fffe4560956d3908a.tar.gz dotfiles-208877d1e682536aa737748fffe4560956d3908a.tar.bz2 dotfiles-208877d1e682536aa737748fffe4560956d3908a.zip | |
feat(etc): template kernel cmdline, derive LUKS UUID from partition name
Prompt once at 'chezmoi init' time for the LUKS root partition (e.g.
nvme0n1p2) and store it under [data].luksRootPartition in the per-machine
chezmoi config. etc/kernel/cmdline.tmpl resolves the UUID at apply time
via lsblk, so reinstalls only require re-entering the partition name.
The etc deploy script now renders *.tmpl sources through
'chezmoi execute-template' and installs them without the suffix. The
resolved UUID is folded into the onchange hash so the script re-runs
when the UUID changes even if etc/ content is unchanged.
just etc-status/diff transparently handle .tmpl sources (strip suffix
for the live-path mapping, render before diffing). etc-re-add skips
.tmpl files since template sources can't be reverse-rendered from the
live file.
Diffstat (limited to '.chezmoi.toml.tmpl')
| -rw-r--r-- | .chezmoi.toml.tmpl | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/.chezmoi.toml.tmpl b/.chezmoi.toml.tmpl index f41c11a..f7b1156 100644 --- a/.chezmoi.toml.tmpl +++ b/.chezmoi.toml.tmpl @@ -5,3 +5,9 @@ sourceDir = {{ .chezmoi.sourceDir | quote }} [diff] exclude = ["scripts"] + +[data] + # Block device holding the LUKS-encrypted root, without the /dev/ prefix + # (e.g. "nvme0n1p2", "sda2"). Resolved to a UUID at apply time via lsblk, + # used by etc/kernel/cmdline.tmpl. + luksRootPartition = {{ promptStringOnce . "luksRootPartition" "LUKS root partition (e.g. nvme0n1p2)" | quote }} |
