複数のマシン上で同じシェル環境を整えるためにGitでdotfilesを管理している方は多いと思いますが、変更するたびにコミット&プッシュを手動で行うのは面倒だと思ったので改善したメモ。
スクリプトの準備
auto-commit.zsh
#!/usr/bin/env zsh
git add -A .
local timestamp="$(date '+%Y/%m/%d %H:%M:%S')"
git commit -m "Automatically updated on ${timestamp}" && git push origin master
chmod +x auto-commit.zsh
几帳面な人はコミット前にスモークテストを挟んでもいいかもしれない。
定期アップデートの設定
cronを使って定期アップデートを設定する。
crontab -e
下記は毎日15時にdotfilesの変更差分があればリモートに反映する例である。
0 15 * * * cd ~/dotfiles && ./auto-commit.zsh