lib/core/util/cli.rb in nucleon-0.1.1 vs lib/core/util/cli.rb in nucleon-0.1.2
- old
+ new
@@ -33,11 +33,11 @@
attr_accessor :arguments
attr_accessor :processed
#---
- def initialize(args, banner = '', help = '')
+ def initialize(args, banner = '', help = '', split_help = false)
@parser = OptionParser.new
self.options = {}
self.arguments = {}
@@ -48,11 +48,11 @@
self.banner = banner
self.help = help
yield(self) if block_given?
- parse_command(args)
+ parse_command(args, split_help)
end
#---
def self.split(args, banner, separator = '')
@@ -68,11 +68,11 @@
break
end
end
main_args = args.dup if main_args.nil?
- results = [ Parser.new(main_args, banner, separator) ]
+ results = [ Parser.new(main_args, banner, separator, true) ]
if sub_command
results << [ sub_command, sub_args ]
end
@@ -101,11 +101,11 @@
end
end
#---
- def parse_command(args)
+ def parse_command(args, split_help = false)
args = args.dup
error = false
self.processed = false
@@ -115,17 +115,29 @@
)
option_str(:encoded_params, false,
'--encoded STR',
'nucleon.core.util.cli.options.encoded'
)
- parser.on_tail('-h', '--help', CLI.message('nucleon.core.util.cli.options.help')) do
- options[:help] = true
- return
+ if split_help
+ parser.on_tail('-h', CLI.message('nucleon.core.util.cli.options.short_help')) do
+ options[:help] = true
+ end
+ parser.on_tail('--help', CLI.message('nucleon.core.util.cli.options.extended_help')) do
+ options[:help] = true
+ options[:extended_help] = true
+ end
+ else
+ parser.on_tail('-h', '--help', CLI.message('nucleon.core.util.cli.options.short_help')) do
+ options[:help] = true
+ end
end
parser.parse!(args)
-
+
+ # Now we can act on options given
Nucleon.log_level = options[:log_level] if options[:log_level]
+ return if options[:help]
+
parse_encoded
remaining_args = args.dup
arg_messages = []