Changing to cligen
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
module CliGenerator::Parser
|
||||
module CliGen::Parser
|
||||
|
||||
macro extended
|
||||
{% verbatim do %}
|
||||
@@ -7,26 +7,26 @@ module CliGenerator::Parser
|
||||
{% puts "#{@type.name} OptionParser is being generated" %}
|
||||
{% name = @type.name.split("::").last %}
|
||||
{% var = name.downcase %}
|
||||
{% info = @type.annotation(::CliGenerator::CommandInfo) %}
|
||||
{% info = @type.annotation(::CliGen::CommandInfo) %}
|
||||
{% raise "ERROR : No CommandInfo annotation provided to #{@type.name}" unless info %}
|
||||
subparser = OptionParser.new do |parser|
|
||||
parser.banner = {{@type.name}}::HEADER
|
||||
{% subcommands = @type.class.methods.select(&.annotation(::CliGenerator::SubCommand)) %}
|
||||
{% subcommands = @type.class.methods.select(&.annotation(::CliGen::SubCommand)) %}
|
||||
{% if subcommands.size > 0 %}
|
||||
define_section("Subcommands", parser)
|
||||
{% for subcommand in subcommands %}
|
||||
{% subcommand_anno = subcommand.annotation(::CliGenerator::SubCommand) %}
|
||||
{% subcommand_anno = subcommand.annotation(::CliGen::SubCommand) %}
|
||||
parser.on({{subcommand.name.stringify}}, {{subcommand_anno[:description]}}){
|
||||
{{@type.name}}.action= {{subcommand.name.stringify}}
|
||||
}
|
||||
{% end %}
|
||||
{% end %}
|
||||
|
||||
{% arguments = @type.class.methods.select(&.annotation(::CliGenerator::CommandArgument)) %}
|
||||
{% arguments = @type.class.methods.select(&.annotation(::CliGen::CommandArgument)) %}
|
||||
{% if arguments.size > 0 %}
|
||||
define_section("Provide Arguments", parser)
|
||||
{% for argument in arguments %}
|
||||
{% argument_anno = argument.annotation(::CliGenerator::CommandArgument) %}
|
||||
{% argument_anno = argument.annotation(::CliGen::CommandArgument) %}
|
||||
{% if argument_anno[:short] == "" && argument_anno[:long] != "" %}
|
||||
parser.on({{argument_anno[:long]}}, {{argument_anno[:description]}}){|val|
|
||||
{% elsif argument_anno[:short] != "" && argument_anno[:long] == "" %}
|
||||
|
||||
Reference in New Issue
Block a user