4cce5cc45c
- Finished implementing relative date parsing and migrated date parsing from Flag(T) to it's own dedicated module. Additionally added a the ability to do "recursive" relative operations for time searching. - Additionally made a Struct & Enum for containing relative operations around dates. - Added additional checks in App & CommandNode(T) around checking env_vars of flags & checking for duplicate commands - Added a CommandMeta record to contain the classname of the CommandNode(T) - Seperated out all of the monolitic files (command_node.cr & file.cr). Moved the base classes and records into their own files in the dir with the same name of their generic counterparts. - Fixed a number of macro related bugs around Command.argument & CliGen.add_global_flag - My ass hurts from sitting here for hours and doing these changes and arguing with claude over what needs to be done. Fun tho.
27 lines
708 B
Crystal
27 lines
708 B
Crystal
# SPDX-License-Identifier: Apache-2.0
|
|
# Copyright 2026 Tristan Ancelet
|
|
|
|
require "./cligen/exceptions"
|
|
require "./cligen/coercable"
|
|
require "./cligen/parsable"
|
|
require "./cligen/annotations"
|
|
require "./cligen/format"
|
|
require "./cligen/regex"
|
|
require "./cligen/flag"
|
|
require "./cligen/timeparse"
|
|
require "./cligen/command"
|
|
require "./cligen/command_node"
|
|
require "./cligen/app"
|
|
|
|
module CliGen
|
|
VERSION = "0.1.0"
|
|
|
|
APPNAME = File.basename(PROGRAM_NAME)
|
|
|
|
macro override_help_template(filepath)
|
|
{% raise "ERROR : CliGen.override_help_template : File(#{filepath}) doesn't exist" unless file_exists?(filepath) %}
|
|
CliGen::HELP_OVERRIDE_TEMPLATE = {{`readlink -f #{filepath}`.strip.stringify}}
|
|
end
|
|
end
|
|
|