61
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

シェルスクリプトの実行・管理が楽になるRerunの紹介

Last updated at Posted at 2013-04-15

普段使っているシェルスクリプトの数が増えてきて、うまく管理できるツール無いかなーと思っていたところにRerunというのを見つけたので紹介してみます。

#Rerunって?
Rerun by rerun

Rerun is a simple command runner that turns loose shell scripts into modular automation.

rerunは複数のスクリプトをモジュールとして取りまとめ、スクリプトの管理と呼び出しをサポートしてくれるツールです。

実際に導入しながらどんなものか見ていきます。

#インストール
Installation · rerun/rerun Wiki を参考に。

$ git clone git://github.com/rerun/rerun.git
$ cd rerun

モジュール・コマンド作成

まずはモジュールを作ってみます。rerunにはstubbsというモジュール作成の為のモジュールが入っているので、これを使います。

$ ./rerun stubbs:add-module --description "sample local module" --module "local"
$ ./rerun
Available modules in "/Users/horimislime/Desktop/software/rerun/modules":
  local: "sample local module" - 1.0.0
  stubbs: "Simple rerun module builder" - 1.0.2

試しにstubbsのadd-moduleコマンドで、ローカル作業に関するスクリプトをひとまとめにする"local"モジュールを作成しました。rerunを引数なしで実行すると、使用できるモジュール一覧が確認できます。

次にモジュールへコマンドを追加してみます。コマンドとはモジュール内で管理するシェルスクリプトとそのメタデータをひとまとめにしたモノで、さっきと同じくstubbsで作成します。

$ ./rerun stubbs:add-command --module local --command hello --description "Hello world comamnd"
$ ./rerun local 
Available commands in module, "/Users/horimislime/Desktop/software/rerun/modules/local":
hello: "Hello world comamnd"

これでrerunディレクトリ下に modules/local/commands/hello/ が作成されます。helloディレクトリ下には実行するスクリプトのひな形であるscriptと、作成時に指定したdescription等の情報が入った metadataファイルが出来上がっています。

scriptにはひな形で色々書かれていますが、ひとまず無視して最下部の方に処理を追加します。

script
# Command implementation
# ----------------------

# - - -
# Put the command implementation here.
# - - -

echo 'Hello rerun command!'

# Done. Exit with last command exit status.
exit $?

#実行
作成したスクリプトを呼び出してみます。

$ ./rerun local:hello
Hello rerun command!

こんな感じです。扱っているスクリプトが増えれば増えるほど、rerunのモジュールを使ったグループ化が役に立ちそうです。あとモジュールやコマンド毎に概要やバージョン番号のメタデータを付けられるのもいいですね。仮に作ったコマンドを忘れてしまっても、 rerun [モジュール名] でコマンド一覧といっしょにその概要も見ることができます。

以上がrerunの基本的な機能ですが、他にもモジュールをアーカイブ化して配布可能にできたり、まだまだ便利な使い方がありそうです。 rerun-modules にはモジュールがいくつか公開されているので、コマンドの拡張方法とかはこっちを参考にすると良さそうです。

61
57
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
61
57

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?