Embulk

embulk の隠しコマンド embulk irb と embulk exec

More than 1 year has passed since last update.

embulk のプラグイン等のデバッグをしていて、 embulk 環境の JRuby 特有の条件や性質にぶち当たることがある。
そういう場合に、 embulk の世界でインタラクティブにデバッグできたら便利だな、と考えていた。

探してみた所、どうやらそのような隠しコマンドが存在するようだ。

勝手に隠しコマンドと呼んでみたものの、実はどこかに記述されているのかもしれない。
少なくとも 2017 年 10 月 4 日現在、 Web ドキュメントREADMEembulk --help には見つけられなかった。

この記事で解説してみる (誤った理解があるかもしれない)

embulk irb

jirb (JRuby の IRB ) に入る事ができる (インタラクティブシェルや REPL の類)

あとはいつも通り。たとえば

$ embulk irb
2017-10-04 23:49:33.706 +0900: Embulk v0.8.30
irb(main):001:0> p 'yay'
"yay"
=> "yay"
irb(main):004:0> 3.times {|i| print(i)}
012=> 3

当然、プラグインを require して使うこともできる。デバッグが捗る。

embulk exec

embulk execbundle exec のように embulk 環境でシェルコマンドを実行できる。

たとえば、環境変数を表示できるコマンドである env を実行すると

$ embulk exec env
GEM_HOME=...
JAVA_MAIN_CLASS_12912=...
RUBY=...
JAVA_ARCH=x86_64
GEM_PATH=
.
.
.

など、環境変数が得られる。

embulk gem でインストールしたパッケージに付属するコマンドも実行できるようになる。

2017 年 10 月 5 日 追記:

どうやら廃止される可能性があるらしい。 (hiroysato さんから教えていただきました。ありがとうございます。)

まだ見つけたばかりだし un-JRuby-ing the boot process と呼んでいる改善によって JRuby のデバッグしにくさが発展的に解消されるのであれば、 embulk irbembulk exec が使えなくても平気かなぁ?