昨日は採集結果を自動で表示してくれるスクリプトを作ったのだが、やっぱり気に入らなくなりもう一度Rubyで自動実行しないのを書いてみた。
#!/usr/bin/ruby def execute_erlang_command() # 現状の以下の正規表現では、複数の引数及びタプル、リストに対応してないので、 # 正規表現を修正する必要がある。 # ただ、普通の正規表現の使い方を逸脱するほど複雑になりそうなので、 # (リストやタプルが多重的に内包されてるときの処理はどうするんだろう…) # 気が向いたときにすることにする。 /(^.*?):(.*?)\((.*?)\)\.?$/ =~ ARGV.shift print `erl -noshell -s #{$1} #{$2} #{$3 if $3 != nil} -s init stop` end if __FILE__ == $0 execute_erlang_command end
上のスクリプトをrun_erlangとか何とか名前をつけて実行権限をつければOK。
使い方はこんな感じ
$ run_erlang "main:main(true)."
このスクリプトでは昨日みたいに呼び出したメソッドの結果を表示してくれないので、自分でio:format〜を書く必要があることに注意。上で書いたように引数を複数取ることができないんだけど、今後修正するかは未定。(だれか正規表現できる人改良してくれ)