Golangでファイルの更新を監視してみた
痒いところに手が届くビルドツール・ファイル監視ツールがなかった(探し当てられなかった)ので作ってみた
簡単な解説?
ディレクトリ階層の深さは”/”の数から求めたので”../”のようなものは少し手間取った。
指定したディレクトリより下のファイル・ディレクトリはfilepath.Walk()で参照でき、filepath.SkipDirでスキップできる。
ファイルの最終更新時間はos.Stat()とsyscall.Stat()がある。(他にもあるかも)
参考:逆引きGolang (ファイル)
goroutineで並列に処理したり、シグナルを飛ばしてみてもいいかも
はまったところ
ischange()のfor文の
for i := range *list { }
を
for _, i := range *list { }
と書いてしまうとiはlistの値渡しになってしまうので注意