Edited at

guard-shellでソースコードの変更を監視して自動でmake&実行させる

More than 1 year has passed since last update.


概要

C言語で開発するとき、せっかくMakefile作るなら自動でmakeして実行させたりしたいですよね。

ファイルの変更監視をする方法はいろいろあるようですが、Rubyの環境を持っているのであればguard-shellを使ってこんなに簡単にできます、という記事です。

サンプルのファイル一式をこちらに置いておきました。


前提


  • RubyおよびRubygemsをインストール・実行できる環境は整っているものとします。

  • makeするためのソースコードおよびMakefileはご準備ください。動かしてみるだけなら上記サンプルをダウンロードいただければ。


guard-shell環境構築手順


1. gemのインストール

$ gem install guard

$ gem install guard-shell


2. Guardfile の作成

ファイル監視したいディレクトリに移動した上で、以下のコマンドを実行すると、Guardfileという名前のサンプルが記載されたファイルが生成されます。

$ guard init

Guardfileを以下のように編集します。``で囲まれた箇所はお好きなコマンドに変更してください。


Guardfile

guard :shell do

watch(/(.*)\.c/) {|m| `make && ./#{File.basename(m[0], ".c")}` }
end


3. 監視の開始

以下のコマンドを叩くだけです。

$ guard

監視対象や実行コマンドを修正したいとき、Guardfileを修正すれば自動的に再読み込みしてくれるのでguardコマンドを途中で終了したりしなくてよくて便利です。


参考