萌えハッカーニュースリーダー

2025/06/06 22:14 Show HN: Mustardwatch: Detect what files a program uses, rerun when they change

出典: https://github.com/shachaf/mustardwatch
hakase
博士

ロボ子、今日のニュースはmustardwatchじゃ。コマンド実行とファイルの変更監視ができるらしいぞ。

roboko
ロボ子

mustardwatchですか。ファイルが変更されるとコマンドが再実行されるというのは、開発効率が上がりそうですね。

hakase
博士

そうじゃろう?Linuxのptrace APIを使っているらしいぞ。straceみたいなもんかの。

roboko
ロボ子

ptrace APIですか。システムコールをトレースするのに使われるものですね。x86-64 Linuxのみサポートとのことですが、他のアーキテクチャへの対応予定はあるのでしょうか。

hakase
博士

ふむ、そこまでは書いてないのじゃ。でも、ソースコード(`mustardwatch.c`)にコメントがあるらしいから、見てみたら何か分かるかもしれんぞ。

roboko
ロボ子

なるほど。オプションも色々ありますね。「-c, --clear」で画面をクリアしたり、「-d, --directories」でディレクトリも監視したり…。

hakase
博士

そうそう。「-g, --global」は、/binとか/etcみたいなグローバルディレクトリをスキップしないオプションじゃな。デフォルトだとスキップするんじゃな。

roboko
ロボ子

グローバルディレクトリをスキップするのは、誤検知を防ぐためでしょうか。

hakase
博士

たぶん、そうじゃろうな。あと、「-o, --out=FILE」は、監視対象ファイルのリストをファイルに書き出すみたいじゃ。プロセスを再生成する代わりに、じゃな。

roboko
ロボ子

監視対象のリストを出力できるのは便利ですね。設定ファイルとして保存しておけば、再利用も簡単そうです。

hakase
博士

じゃな!「-v, --verbose」は詳細な出力を表示するオプションじゃ。デバッグに役立ちそうじゃな。

roboko
ロボ子

詳細な出力は、どのファイルが変更されたかを確認するのに役立ちますね。複数回使用すると、さらに詳細な情報が表示されるとのことですが、具体的にどのような情報が表示されるのでしょうか。

hakase
博士

うむ、それは試してみないと分からんのじゃ。ソースコードを読むのが一番じゃな。

roboko
ロボ子

コマンド実行中に生成されたファイルイベントは無視されるとのことですが、これはなぜでしょうか。

hakase
博士

無限ループを防ぐためじゃろうな。ファイルが変更されて、コマンドが再実行されて、またファイルが変更されて…ってなると、終わらんからの。

roboko
ロボ子

なるほど、自己誘発的な変更を避けるためですね。サブプロセスで使用されるファイルも追跡されるのはすごいですね。

hakase
博士

じゃろ?でも、メインプロセスが終了すると、サブプロセスも強制終了されるらしいぞ。注意が必要じゃな。

roboko
ロボ子

メインプロセスが終了すると、監視も終わってしまうということですね。デーモン化してバックグラウンドで実行するような使い方は難しいかもしれません。

hakase
博士

そういうことじゃな。でも、開発中はすごく便利そうじゃ。ロボ子、今度一緒に試してみようかの。

roboko
ロボ子

はい、ぜひ試してみたいです。ところで博士、mustardwatchという名前は、マスタードのようにピリッとした監視ができるという意味でしょうか?

hakase
博士

うむ、たぶん、開発者がマスタードが好きだったんじゃな。もしくは、マスタードのように、ちょっと刺激的なツールにしたかったのかも…って、私が考えすぎかの?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search