7
7

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.

SansanAdvent Calendar 2015

Day 5

mruby で簡単にオリジナルの CLI を作る

Posted at

この投稿は Sansan Advent Calendar 2015 の 5 日目の記事です。

概要

最近は mruby-cli でマルチプラットフォームの実行バイナリを作成できるようになり、ちょっとした CLI のコマンドを作成する機会が増えたのではないかと思います。

そこで、オリジナルの CLI を簡単に作れるようなライブラリを作ってみました。
お気付きの方もいるかもしれませんが、Ruby の thor のようなものです。

qtkmz/mruby-hogun

準備

まずは mruby-hogun を組み込んだ mruby を用意します。

以下のような build_config.rb を作成し、mruby を作ります。

MRuby::Build.new do |conf|
  toolchain :gcc

  enable_debug

  conf.gem '../mruby-hogun'

  conf.gembox 'default'
end

使い方

class FooCLI < Hogun
	desc "hello NAME", "say hello to NAME"
	def hello(name)
		puts "Hello #{name}"
	end
end

FooCLI.start

のような mycli.rb ファイルを用意し実行してみます。

実行例 1. 引数なしで実行する

$ mruby mycli.rb
Commands:
  mycli.rb hello NAME  # say hello to NAME
  mycli.rb help [COMMAND]  # Describe available commands or one specific command

実行例 2. コマンドを実行する

$ mruby mycli.rb hello Sansan
Hello Sansan

実行例 3. コマンドのヘルプを表示する

$ mruby mycli.rb help hello
Usage:
  mycli.rb hello NAME

say hello to NAME

今後

最後の一枠に滑り込みで参加することになったので、ネタに困りライブラリを作ってみましたが、thor と比べるとまだまだ至らないことがあり、実用はまだかなと思うところもあります。
そんなわけでこれからは、mruby-cli に組み込めるようにしたり、bin にも組み込めるようにして、より mruby で自作のコマンドラインツールが作りやすいようにしていこうと思います。

7
7
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
7
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?