lib/ronin/ui/cli/commands/gen.rb in ronin-gen-1.0.1 vs lib/ronin/ui/cli/commands/gen.rb in ronin-gen-1.1.0.rc1
- old
+ new
@@ -19,26 +19,57 @@
require 'ronin/ui/cli/command'
require 'ronin/gen/gen'
require 'ronin/gen/version'
+require 'parameters/options'
+
module Ronin
module UI
module CLI
module Commands
#
# The `ronin-gen` command.
#
class Gen < Command
- desc "Prints the list of available generators"
- class_option :version, :type => :boolean
+ summary "Prints the list of available generators"
+ usage '[options] | GENERATOR [options]'
+
+ option :version, :type => true,
+ :flag => '-V',
+ :description => 'Prints the ronin-gen version'
+
#
+ # Starts the `ronin-gen` command.
+ #
+ # @param [Array<String>] argv
+ # The arguments for the command.
+ #
+ def start(argv=ARGV)
+ if (argv.empty? || argv.first.start_with?('-'))
+ super(argv)
+ else
+ generator_name = argv.shift
+ generator = Ronin::Gen.generator(generator_name).new
+
+ opts = Parameters::Options.parser(generator) do |opts|
+ opts.banner = "ronin-gen #{generator_name} PATH [options]"
+ end
+
+ args = opts.parse(argv)
+
+ generator.path = args.first
+ generator.generate!
+ end
+ end
+
+ #
# Lists the available generators.
#
def execute
- if options.version?
+ if version?
puts "ronin-gen #{Ronin::Gen::VERSION}"
return
end
print_array Ronin::Gen.generators,