メモ帳

やったこととかちまちまと書く 需要のない記事を生成している

Golangでファイルの更新を監視してみた

痒いところに手が届くビルドツール・ファイル監視ツールがなかった(探し当てられなかった)ので作ってみた

簡単な解説?

ディレクトリ階層の深さは”/”の数から求めたので”../”のようなものは少し手間取った。
指定したディレクトリより下のファイル・ディレクトリはfilepath.Walk()で参照でき、filepath.SkipDirでスキップできる。
ファイルの最終更新時間はos.Stat()とsyscall.Stat()がある。(他にもあるかも)
参考:逆引きGolang (ファイル)
goroutineで並列に処理したり、シグナルを飛ばしてみてもいいかも

はまったところ

ischange()のfor文の

for i := range *list {

}

for _, i := range *list {

}

と書いてしまうとiはlistの値渡しになってしまうので注意