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

概要

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コマンドを途中で終了したりしなくてよくて便利です。

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.