環境
- MACOSX:10.11.5
- fswatch:1.9.2
fswatch
ディレクトリの中身を監視して、変更結果を次の処理に渡してあげることでいろんなことができます。
公式ホームページ
How to User fswatch
インストール
brew install fswatch
基本の使い方
自分が使うときに調べた分は以下に書きたいと思います。残りについては公式のドキュメント(1.9.2)に詳しくまとまっているのでそちらをご参照ください。
fswatch -o [path] | xargs -n1 -I{} [program]
この[path]
に監視したいディレクトリのパスを入れてもらって、[program]
に実行したい処理を書きます。
ちなみに-I{}
を取り除くことで、fswatch
で取得したファイルのパスが[program]
で使えるようになります。つまり、
fswatch -o [path] | xargs -n1 cat
で変更のあったファイルへのパスが標準出力へ出力されます。
fswatchでフォルダを監視して自動commitする
fswatch -0 . -e "\\.git.*" | xargs -0 -n 1 -I{} git commit -am "edit file"
この記事の本題です。
.gitファイルの変更は除外するために-e (execlude)
を使いました。-e
は正規表現を使って監視から除外するものを指定できるようです。
ドキュメントや論文をWordで書いているとき、Wordの履歴機能が心もとないことに加えて、でもGitで管理しようとすると、いちいちWordから離れてcommitするのが面倒くさい。
そんな2つの理由からfswatchを使おうと思いました。
ただ今となっては、Dropboxの履歴管理機能で十分だったなと思っています。
もしも使う場合は、みなさまご自身の責任で利用してください。
Git勉強中であることと、チーム開発をあまりしないので確信はもてませんが、チームで開発しているのに変更を全てcommitなんてしたらお怒りになる方も多いと思います。。。
Guard で Git コミットを自動で行う
こちらの記事で自動コミットについてコメントされている方がいらっしゃいました。
以上です。