37 lines
874 B
Crystal
37 lines
874 B
Crystal
require "./cligen/parsable"
|
|
require "./cligen/annotations"
|
|
require "./cligen/format"
|
|
require "./cligen/regex"
|
|
require "./cligen/flag"
|
|
require "./cligen/command"
|
|
require "./cligen/command_node"
|
|
require "./cligen/app"
|
|
|
|
module CliGen
|
|
VERSION = "0.1.0"
|
|
|
|
APPNAME = File.basename(PROGRAM_NAME)
|
|
|
|
record AdditionalDefaultFlag,
|
|
short : String,
|
|
long : String,
|
|
description : String,
|
|
work : String ->
|
|
|
|
ADDITIONAL_DEFAULT_FLAGS = [] of AdditionalDefaultFlag
|
|
|
|
def self.add_default_flag(short : String = "", long : String = "", description : String = "", &work : String -> )
|
|
raise "ERROR : add_default_flag : You must provide a description" if description.empty?
|
|
ADDITIONAL_DEFAULT_FLAGS << AdditionalDefaultFlag.new(
|
|
short: short,
|
|
long: long,
|
|
description: description,
|
|
work: work
|
|
)
|
|
end
|
|
|
|
annotation DefaultFlag
|
|
end
|
|
end
|
|
|