Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
58
Help us understand the problem. What is going on with this article?
@horimislime

シェルスクリプトの実行・管理が楽になる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 にはモジュールがいくつか公開されているので、コマンドの拡張方法とかはこっちを参考にすると良さそうです。

58
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
58
Help us understand the problem. What is going on with this article?