Automatic Ruby を使うなら、リリース版を使っても十分な品質が保証されるし良いのだが、 GitHub の最新状態を使うのがよりオススメである。

日々の開発の成果がすぐに反映されるし (言うほど開発してないけど) 、挙動が気に入らなかったときにちょっとパッチでも書いて送ってやるかという気分になる。

ちなみに本当はあれもこれも作らなきゃという状態なのであるが、今すぐ自動でやりたいことに差し迫られているわけでもないのでノンビリしている。テストも申し訳程度に C0 カバレッジを通しているだけなので、できればもっときちんと充実させたいところなのである。

ここではふだん自動処理を実行するためのユーザーアカウントを automatic として説明する。

ディレクトリとファイル
多少の差はあれ、だいたいこのような形になるだろう。
1) /home/automatic/bin/*.sh … cron から呼ばれるシェルスクリプト
2) /home/automatic/.automatic/config/*.yml … レシピ
3) /home/automatic/.automatic/db/*.db … SQLite データベース
4) /home/automatic/automaticruby … ホームで git clone したリポジトリ

crontab の記述例

*/30 * * * * automatic test -x /home/automatic/bin/HOGE.sh && /home/automatic/bin/HOGE.sh

シェルスクリプト
上の 1) に置かれるシェルスクリプトの例

#!/bin/sh

# ログファイル名を定義
JOBLOG=/var/log/automatic/HOGE.log

# ジョブの開始日時をログに記録
echo -n "*** $0: Job start at `/bin/hostname` on ">>$JOBLOG 2>&1
date "+%Y/%m/%d %T">>$JOBLOG 2>&1

# リリース版 (gem) を使う場合
# /opt/ruby/1.9.3/bin/automatic -c HOGE.yml >>$JOBLOG 2>&1

# GitHub の最新を使う場合 (おすすめ)
/opt/ruby/1.9.3/bin/ruby /home/automatic/automaticruby/bin/automatic -c HOGE.yml >>$JOBLOG 2>&1

# ジョブの終了日時をログに記録
echo -n "*** $0: End of Job at `/bin/hostname` on ">>$JOBLOG 2>&1
date "+%Y/%m/%d %T">>$JOBLOG 2>&1
echo>>$JOBLOG 2>&1

この例では Ruby が /opt/ruby/1.9.3 にビルドインストールされていることを前提にしているので適宜読み替えてほしい。

このように運用していれば ~/automaticruby で git pull するだけでいつでも最新の Automatic Ruby に追随することができる。

投稿日: 作成者: 774