28 lines
598 B
Crystal
28 lines
598 B
Crystal
require "colorize"
|
|
require "time"
|
|
|
|
require "./annotations"
|
|
require "./command/argument"
|
|
require "./command/selection"
|
|
require "./command/help_template"
|
|
require "./command/subcommand"
|
|
require "./command/def_init"
|
|
require "./command/define_command_initializer"
|
|
|
|
module CliGen
|
|
class Command
|
|
macro inherited
|
|
{% verbatim do %}
|
|
macro finished
|
|
{% anno = @type.annotation(CliGen::CommandInfo) %}
|
|
{% raise "" unless anno %}
|
|
{% if anno[:def_init] %}
|
|
def_init
|
|
{% end %}
|
|
define_command_initializer
|
|
end
|
|
{% end %}
|
|
end
|
|
end
|
|
end
|