🏑
おれの chezmoi 小ネタ集
chezmoi 小ネタです。
chezmoi diff でファイル名だけ確認する
chezmoi diff すると差分が出る。
$ chezmoi diff
diff --git a/.config/zsh-abbr/user-abbreviations b/.config/zsh-abbr/user-abbreviations
index 44858ff65ed4d489d13ae84f34177869917eec0d..dddae84d604c07f9385ceb0c4a2add18e5d83c26 100600
--- a/.config/zsh-abbr/user-abbreviations
+++ b/.config/zsh-abbr/user-abbreviations
@@ -18,3 +18,4 @@ abbr ga='git add'
abbr gm='git merge'
abbr grh='git reset HEAD'
abbr grhh='git reset HEAD --hard'
+foo
差分がファイル名だけ確認したい。
$ chezmoi diff | grep -E '^diff '
diff --git a/.config/zsh-abbr/user-abbreviations b/.config/zsh-abbr/user-abbreviations
just タスクにする。
diff:
@chezmoi diff | grep -E '^diff ' || echo "No differences"
chezmoi re-add するときに chezmoi diff で表示されるファイル名を使う
しかし、表示されるファイルパスが Chezmoi のホームディレクトリからの絶対パスのような表記なので適当にコピーすると先頭の a/orb/ を ~/ に変換する必要があり面倒
a/.config/zsh-abbr/user-abbreviationsb/.config/zsh-abbr/user-abbreviations
just タスクにする。
re-add file:
@echo {{file}} | sed 's/^./~/' | xargs chezmoi re-add
chezmoi apply したら shell を読み込み直したい
設定変更を反映したいので。
just タスクにする。
apply:
chezmoi apply && exec $SHELL -l
まとめ
justfile 例
set shell := ["bash", "-eu", "-o", "pipefail", "-c"]
[private]
@default:
echo "Usage: just <recipe>" && just --list
diff:
@chezmoi diff | grep -E '^diff ' || echo -e "No differences"
re-add file:
@echo {{file}} | sed 's/^./~/' | xargs chezmoi re-add
apply:
chezmoi apply && exec $SHELL -l
使用例
$ just diff
diff --git a/.config/zsh-abbr/user-abbreviations b/.config/zsh-abbr/user-abbreviations
# ↑のパスをコピーして持ってきてる
$ just re-add a/.config/zsh-abbr/user-abbreviations
課題
もっとうまい解決法がある気がする。そもそもオプションとか見落としてるかも。
本当は zsh-abbr に chezmoi d とか chezmoi ra、 chezmoi a とかで登録したかったのだけど、うまくいかなかった。
Discussion