我想知道允许可选参数以破折号 (-) 开头的最佳方法是什么。我想要一个子命令接受应该是“+42”或“-123”的数字样式参数。所以从命令行我可以做:
gliapp show -123
这目前会导致错误,因为 gli 认为 -123 是未知开关。我知道可以做
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)