【chezmoi】chezmoiで管理するdotfileに変更があったら自動でコミット・プッシュする

03-23-2024

chezmoiでdotfileを管理しているが、 chezmoi edit で修正したファイルを毎回手動でコミット・プッシュするのが面倒だった

そこで、chezmoiの設定ファイルを使って修正したdotfileがあれば、自動でコミット・プッシュする機能があるみたいだったので実際に設定してみた

設定ファイルの配置

chezmoi 自体の設定は ~/.config/chezmoi/chezmoi.toml に配置すれば認識してくれる

もし、 chezmoi.toml が存在しなければ、直接 ~/.config/chezmoi に配置する

以下のような注意文が出たら、 chezmoi init で設定ファイルを再生成する

chezmoi: warning: config file template has changed, run chezmoi init to regenerate config file

設定項目

自動でコミット・プッシュする際に、コミットログをきれいに保ちたいわけではないので、以下のような設定を行う

[git]
    autoCommit = true
    autoPush = true

設定自体は、Daily operations - chezmoi に記載されているものになる

このように設定しておくと、 Update {dotfile名} という形でコミットメッセージが自動で生成される

普段使うとき

chezmoi で管理するdotfileとホームディレクトリに配置されるファイルはそれぞれが独立した実ファイルなのでホームディレクトリのファイルを編集してもgit管理下では反映されない

そのため、ファイルの編集をする際には以下の二通りのどちらかで編集することで、chezmoiの設定ファイルに変更があった場合に自動でコミット・プッシュされる

chezmoiで編集する

# chezmoi配下のdotfileを修正する
chezmoi edit {dotfile名}

# 問題なければ、chezmoi配下のdotfileの内容でホームディレクトリを更新する
chezmoi re-add

ホームディレクトリで編集する

# dotfileを直接修正する
# chezmoi配下のdotfileに反映する
chezmoi add {dotfile名}

# 問題なければ、chezmoi配下のdotfileの内容でホームディレクトリを更新する
chezmoi re-add

さいごに

上記の設定をすることで、ホームディレクトリで修正した内容を chezmoi に反映し忘れることはなくなった

もうちょっと chezmoi 配下で管理することに徹する場合、 chezmoi edit を shellの alias に設定して運用することもいいのかもしれないと思った

参考


カモ
普段はエンジニアをやっていて、たまに旅人になりたい カモ