ShellScript
Bash
Linux

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

More than 5 years have passed since last update.

普段使っているシェルスクリプトの数が増えてきて、うまく管理できるツール無いかなーと思っていたところに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 にはモジュールがいくつか公開されているので、コマンドの拡張方法とかはこっちを参考にすると良さそうです。