ファイルを編集したら何かを実行したい、というのは良くあるニーズです。webpackやgulpなどを使えばできますが、JavaScriptが関係ないところでは用意が面倒だったり、大げさに感じてしまうでしょう。Shellスクリプトでもできますが、開発者でないと使いづらそうです。 そこで使ってみたいのがwatchexecです。拡張子を指定するだけで、手軽に利用できます。

watchexecの使い方

実行例です。拡張子を指定して、変更があったら実行したいコマンドを続けるだけです。

$ watchexec --exts md,png echo "Changed"
Changed

watchexecは拡張子を指定するだけでなく、ディレクトリやサブディレクトリを含めて全体を指定することもできます。そして変更があったら特定のシェルスクリプトを実行したり、ビルドを実行したりと自由に操作できます。なお、筆者環境では初回実行時やファイルを開いたタイミングでもコマンドが実行されましたので注意してください。

watchexecはRust製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

watchexec/watchexec: Executes commands in response to file modifications