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,