mixlib-cli、便利ですよね。
この option
で同じオプションで複数の値を渡したい時はどうすればいいか
例えば --hosts
で複数のホストの情報を渡したいとか。
ぱっと調べた感じ&動作を見た感じでは、 cmd --hosts host1 --hosts host2
とかいう渡し方でうまく処理してくれるということはなさそう
:proc
オプションを使うとそれっぽくできる
:proc
オプションは、 Proc
を渡しておくと渡された値をその関数で前処理しておいてくれる。
options :hosts, :long => "--hosts", :proc => Proc.new { |a| a.split(",") }
↑のようにしておくと cmd --hosts host1,host2
で複数の値をカンマ区切りで渡せば、プログラム内で config[:hosts] = ["host1", "host2"]
として使える。