class Ronin::UI::CLI::Commands::Gen

Runs or lists available generators.

## Usage

ronin-gen [[options] | GENERATOR [generator-options]]

## Options

-v, --[no-]verbose               Enable verbose output.
-q, --[no-]quiet                 Disable verbose output.
    --[no-]silent                Silence all output.
    --[no-]color                 Enables color output.
                                 Default: true
-V, --[no-]version               Prints the ronin-gen version.

## Examples

ronin-gen repository myrepo --git
ronin-gen library ronin-pwn

Public Instance Methods

execute() click to toggle source

Lists the available generators.

# File lib/ronin/ui/cli/commands/gen.rb, line 119
def execute
  if version?
    puts "ronin-gen #{Ronin::Gen::VERSION}"
    return
  end

  print_array Ronin::Gen.generators, :title => 'Available Generators'
end
start(argv=ARGV) click to toggle source

Starts the ‘ronin-gen` command.

@param [Array<String>] argv

The arguments for the command.
Calls superclass method
# File lib/ronin/ui/cli/commands/gen.rb, line 74
def start(argv=ARGV)
  if (argv.empty? || argv.first.start_with?('-'))
    return super(argv)
  end

  generator_name  = argv.shift
  generator       = Ronin::Gen.generator(generator_name).new

  case generator
  when Ronin::Gen::FileGenerator, Ronin::Gen::DirGenerator
    opts = Parameters::Options.parser(generator) do |opts|
      opts.banner = "ronin-gen #{generator_name} PATH [options]"
    end

    args = opts.parse(argv)

    if args.empty?
      print_error "Must specify a PATH argument"
      exit -1
    end

    generator.path = args.first
  else
    opts = Parameters::Options.parser(generator) do |opts|
      opts.banner = "ronin-gen #{generator_name} [options]"
    end

    args = opts.parse(argv)
  end

  begin
    generator.generate!
  rescue Parameters::MissingParam => error
    print_error error
    print_error "Please see `ronin-gen #{generator_name} --help`"
    exit -1
  rescue => error
    print_exception error
    exit -1
  end
end