monolithic kernel

dotfiles の管理に chezmoi を導入して fswatch で自動 apply できるようにした

もともと dotfiles を Git で管理していて、自前のスクリプトでシンボリックリンクを張るみたいな運用だったのだが、Windows、macOS、Ubuntu on WSL2、Devcontainers あたりのプラットフォームで可能な限り環境構築の手法を共通化したくて chezmoi を導入した。

chezmoi 単体だと、dotfiles を編集するたびに chezmoi apply コマンドを手動で実行する必要があるので、ファイルの更新を監視して自動で chezmoi apply するような仕組みを用意した。chezmoi のドキュメントでも Watchman を使った方法が紹介されていて、素直に従えばよい話ではあるのだが、Watchman はクセが強いように見えたため、似たようなことができて好みの使い勝手を実現できる fswatch を使うことにした。

こんな感じ。

fswatch -r -o -l 3 $(chezmoi source-path) | xargs -n1 -I'{}' chezmoi apply --verbose

これでストレス無く設定を編集できるようになった。

# fswatch で検索していたら、書いたことすら忘れていた自分の記事が出てきてびっくりした。意外と役に立つこともあるんだなと。

2023-04-15 追記

よく見たら chezmoi edit--watch オプションがあった.chezmoitemplatesinclude の先を見てくれない制限はあるものの、chezmoi 単体でも一応できるようだった。


Related articles