0

オプションの引数をダッシュ​​ (-) で開始できるようにする最善の方法は何でしょうか。「+42」または「-123」である数値形式の引数をサブコマンドで受け入れる必要があります。したがって、コマンドラインから次のことができます。

gliapp show -123

gli は -123 を未知のスイッチと見なすため、これは現在エラーにつながります。私は1つができることを知っています

gliapp show -- -123

しかし、ユーザーにこの問題を回避してほしくありません。ARGV を gli run に渡す前に、-123 を自分で処理する必要がありますか?

最小限の例を次に示します。

#!/usr/bin/env ruby

require 'gli'
include GLI::App
subcommand_option_handling :normal
arguments :strict

desc 'p given arg which may start with a dash (-)'
arg "number", :optional;
command :show do |c|
  c.action do |global_opts,opts,args|   
    p args.first
  end
end
exit run(ARGV)
4

1 に答える 1

0

GLI は内部で使用OptionParserし、ダッシュで始まるすべての引数を取得します。これはかなり標準的な UNIX です。

次のように、フラグを使用して値を取得できます。

command :show do |c|
  c.flag :number
  c.action do |global,options,args|
    puts options[:number]
  end
end

その後:

> gliapp show --number=-123
-123
于 2016-04-28T15:56:05.177 に答える