Committing before help rework

This commit is contained in:
2026-09-05 13:19:55 -05:00
parent 4cce5cc45c
commit 3fa77f5707
105 changed files with 22505 additions and 684 deletions
+360 -38
View File
@@ -62,11 +62,6 @@
<ul>
<li class=" " data-id="CliGenerator/CliGen/AdditionalDefaultFlag" data-name="cligen::additionaldefaultflag">
<a href="../CliGen/AdditionalDefaultFlag.html">AdditionalDefaultFlag</a>
</li>
<li class=" current" data-id="CliGenerator/CliGen/App" data-name="cligen::app">
<a href="../CliGen/App.html">App</a>
@@ -77,16 +72,31 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/ArgReprocessedError" data-name="cligen::argreprocessederror">
<a href="../CliGen/ArgReprocessedError.html">ArgReprocessedError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Argument" data-name="cligen::argument">
<a href="../CliGen/Argument.html">Argument</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/BaseCommandNode" data-name="cligen::basecommandnode">
<a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/BaseFlag" data-name="cligen::baseflag">
<a href="../CliGen/BaseFlag.html">BaseFlag</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Coercable" data-name="cligen::coercable">
<a href="../CliGen/Coercable.html">Coercable</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Command" data-name="cligen::command">
<a href="../CliGen/Command.html">Command</a>
@@ -97,13 +107,33 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/CommandNode" data-name="cligen::commandnode">
<li class=" " data-id="CliGenerator/CliGen/CommandMeta" data-name="cligen::commandmeta">
<a href="../CliGen/CommandMeta.html">CommandMeta</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/CommandNode" data-name="cligen::commandnode(t)">
<a href="../CliGen/CommandNode.html">CommandNode</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/DefaultFlag" data-name="cligen::defaultflag">
<a href="../CliGen/DefaultFlag.html">DefaultFlag</a>
<li class=" " data-id="CliGenerator/CliGen/ConfigurationError" data-name="cligen::configurationerror">
<a href="../CliGen/ConfigurationError.html">ConfigurationError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/DuplicateCommandError" data-name="cligen::duplicatecommanderror">
<a href="../CliGen/DuplicateCommandError.html">DuplicateCommandError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/DuplicateFlagError" data-name="cligen::duplicateflagerror">
<a href="../CliGen/DuplicateFlagError.html">DuplicateFlagError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Error" data-name="cligen::error">
<a href="../CliGen/Error.html">Error</a>
</li>
@@ -112,16 +142,86 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/FlagArgumentError" data-name="cligen::flagargumenterror">
<a href="../CliGen/FlagArgumentError.html">FlagArgumentError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/FlagBundleError" data-name="cligen::flagbundleerror">
<a href="../CliGen/FlagBundleError.html">FlagBundleError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/FlagMeta" data-name="cligen::flagmeta">
<a href="../CliGen/FlagMeta.html">FlagMeta</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/FlagMissingArgumentError" data-name="cligen::flagmissingargumenterror">
<a href="../CliGen/FlagMissingArgumentError.html">FlagMissingArgumentError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/FlagNotFoundError" data-name="cligen::flagnotfounderror">
<a href="../CliGen/FlagNotFoundError.html">FlagNotFoundError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Format" data-name="cligen::format">
<a href="../CliGen/Format.html">Format</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/HelpRequestedError" data-name="cligen::helprequestederror">
<a href="../CliGen/HelpRequestedError.html">HelpRequestedError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/InternalError" data-name="cligen::internalerror">
<a href="../CliGen/InternalError.html">InternalError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/InvalidFlagValueError" data-name="cligen::invalidflagvalueerror">
<a href="../CliGen/InvalidFlagValueError.html">InvalidFlagValueError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/InvalidOptionError" data-name="cligen::invalidoptionerror">
<a href="../CliGen/InvalidOptionError.html">InvalidOptionError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/MatchType" data-name="cligen::matchtype">
<a href="../CliGen/MatchType.html">MatchType</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/MissingDispatchError" data-name="cligen::missingdispatcherror">
<a href="../CliGen/MissingDispatchError.html">MissingDispatchError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/MissingRequiredFlagError" data-name="cligen::missingrequiredflagerror">
<a href="../CliGen/MissingRequiredFlagError.html">MissingRequiredFlagError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Parsable" data-name="cligen::parsable">
<a href="../CliGen/Parsable.html">Parsable</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/ParseableInvariantError" data-name="cligen::parseableinvarianterror">
<a href="../CliGen/ParseableInvariantError.html">ParseableInvariantError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/PreRunCommand" data-name="cligen::preruncommand">
<a href="../CliGen/PreRunCommand.html">PreRunCommand</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/ProxyCommand" data-name="cligen::proxycommand">
<a href="../CliGen/ProxyCommand.html">ProxyCommand</a>
@@ -132,6 +232,26 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/RegexInvariantError" data-name="cligen::regexinvarianterror">
<a href="../CliGen/RegexInvariantError.html">RegexInvariantError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/ReservedFlagError" data-name="cligen::reservedflagerror">
<a href="../CliGen/ReservedFlagError.html">ReservedFlagError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/RunCommand" data-name="cligen::runcommand">
<a href="../CliGen/RunCommand.html">RunCommand</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/RuntimeError" data-name="cligen::runtimeerror">
<a href="../CliGen/RuntimeError.html">RuntimeError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Selection" data-name="cligen::selection">
<a href="../CliGen/Selection.html">Selection</a>
@@ -142,11 +262,56 @@
</li>
<li class=" " data-id="CliGenerator/CliGen/SubCommandInfo" data-name="cligen::subcommandinfo">
<a href="../CliGen/SubCommandInfo.html">SubCommandInfo</a>
</li>
<li class="parent " data-id="CliGenerator/CliGen/Timeparse" data-name="cligen::timeparse">
<a href="../CliGen/Timeparse.html">Timeparse</a>
<ul>
<li class=" " data-id="CliGenerator/CliGen/Timeparse/OperationUnit" data-name="cligen::timeparse::operationunit">
<a href="../CliGen/Timeparse/OperationUnit.html">OperationUnit</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Timeparse/RelativeOperation" data-name="cligen::timeparse::relativeoperation">
<a href="../CliGen/Timeparse/RelativeOperation.html">RelativeOperation</a>
</li>
</ul>
</li>
<li class=" " data-id="CliGenerator/CliGen/TimeParseError" data-name="cligen::timeparseerror">
<a href="../CliGen/TimeParseError.html">TimeParseError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/Trigger" data-name="cligen::trigger">
<a href="../CliGen/Trigger.html">Trigger</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/UnknownCommandNodeError" data-name="cligen::unknowncommandnodeerror">
<a href="../CliGen/UnknownCommandNodeError.html">UnknownCommandNodeError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/UnknownFlagError" data-name="cligen::unknownflagerror">
<a href="../CliGen/UnknownFlagError.html">UnknownFlagError</a>
</li>
<li class=" " data-id="CliGenerator/CliGen/ValidationError" data-name="cligen::validationerror">
<a href="../CliGen/ValidationError.html">ValidationError</a>
</li>
</ul>
@@ -168,7 +333,7 @@
</h1>
<ul class="superclass-hierarchy"><li class="superclass"><a href="../CliGen/App.html">CliGen::App</a></li><li class="superclass"><a href="../CliGen/CommandNode.html">CliGen::CommandNode</a></li><li class="superclass">Reference</li><li class="superclass">Object</li></ul>
<ul class="superclass-hierarchy"><li class="superclass"><a href="../CliGen/App.html">CliGen::App</a></li><li class="superclass"><a href="../CliGen/CommandNode.html">CliGen::CommandNode(Nil)</a></li><li class="superclass"><a href="../CliGen/BaseCommandNode.html">CliGen::BaseCommandNode</a></li><li class="superclass">Reference</li><li class="superclass">Object</li></ul>
@@ -182,8 +347,8 @@
Overview
</h2>
<p>This serves as the default App object, that holds a copy of all flags &amp;
handles flag processing until it hands off to the user defined commands</p>
<p>Root entry point. Holds a flattened copy of all flags from every command
for global-flag matching, then hands off to the matched child CommandNode.</p>
@@ -214,6 +379,11 @@ handles flag processing until it hands off to the user defined commands</p>
<br/>
cligen/app/generate.cr
<br/>
@@ -231,7 +401,7 @@ handles flag processing until it hands off to the user defined commands</p>
<ul class="list-summary">
<li class="entry-summary">
<a href="#new%28name%2Cflags%2Ccommands%2Cpre_run_commands%2Cpost_run_commands%29-class-method" class="signature"><strong>.new</strong>(name, flags, commands, pre_run_commands, post_run_commands)</a>
<a href="#new%28name%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%29-class-method" class="signature"><strong>.new</strong>(name, flags : Array(BaseFlag), commands : Array(BaseCommandNode), pre_run_commands : Array(RunCommand), post_run_commands : Array(RunCommand))</a>
</li>
@@ -250,9 +420,14 @@ handles flag processing until it hands off to the user defined commands</p>
<ul class="list-summary">
<li class="entry-summary">
<a href="#process%28args%3AArray%28String%29%3DARGV%29-class-method" class="signature"><strong>.process</strong>(args : Array(String) = <span class="t">ARGV</span>)</a>
<a href="#handle_command_raises%28%26%29%3ANil-class-method" class="signature"><strong>.handle_command_raises</strong>(&) : Nil</a>
<div class="summary"><p>Serves as a convinence method for the user to call to begin processing an argument array provided by the user.</p></div>
</li>
<li class="entry-summary">
<a href="#process%28args%3AArray%28String%29%3DARGV.to_a%29%3ANil-class-method" class="signature"><strong>.process</strong>(args : Array(String) = <span class="t">ARGV</span>.to_a) : Nil</a>
<div class="summary"><p>Convenience entry point; defaults to ARGV</p></div>
</li>
@@ -277,6 +452,11 @@ handles flag processing until it hands off to the user defined commands</p>
</li>
<li class="entry-summary">
<a href="#check_for_env_duplicates%28flags%3AArray%28BaseFlag%29%29-instance-method" class="signature"><strong>#check_for_env_duplicates</strong>(flags : Array(BaseFlag))</a>
</li>
</ul>
@@ -285,38 +465,154 @@ handles flag processing until it hands off to the user defined commands</p>
<h3>Instance methods inherited from class <code><a href="../CliGen/CommandNode.html">CliGen::CommandNode</a></code></h3>
<h3>Instance methods inherited from class <code><a href="../CliGen/CommandNode.html">CliGen::CommandNode(Nil)</a></code></h3>
<a href="../CliGen/CommandNode.html#check%21-instance-method" class="tooltip">
<span>check!</span>
<a href="../CliGen/CommandNode.html#check%21%3ANil-instance-method" class="tooltip">
<span>check! : Nil</span>
check!</a>,
<a href="../CliGen/CommandNode.html#check_for_duplicates%21%28flags%3AArray%28BaseFlag%29%29-instance-method" class="tooltip">
<span>check_for_duplicates!(flags : Array(BaseFlag))</span>
check_for_duplicates!</a>,
<a href="../CliGen/CommandNode.html#help%3AString-instance-method" class="tooltip">
<span>help : String</span>
help</a>,
<a href="../CliGen/CommandNode.html#find_match%28arg%3AString%29-instance-method" class="tooltip">
<span>find_match(arg : String)</span>
find_match</a>,
<a href="../CliGen/CommandNode.html#process%28args%3AArray%28CliGen%3A%3AArg%29%29%3ANil-instance-method" class="tooltip">
<span>process(args : Array(CliGen::Arg)) : Nil</span>
process</a>,
<a href="../CliGen/CommandNode.html#process%28args%3AArray%28String%29%29-instance-method" class="tooltip">
<span>process(args : Array(String))<br/>process(args : Array(Arg)) : Nil</span>
process</a>
<a href="../CliGen/CommandNode.html#subcommands%3AArray%28SubCommandInfo%29-instance-method" class="tooltip">
<span>subcommands : Array(SubCommandInfo)</span>
subcommands</a>,
<a href="../CliGen/CommandNode.html#verbose%3F%3ABool-instance-method" class="tooltip">
<span>verbose? : Bool</span>
verbose?</a>
<h3>Constructor methods inherited from class <code><a href="../CliGen/CommandNode.html">CliGen::CommandNode</a></code></h3>
<h3>Constructor methods inherited from class <code><a href="../CliGen/CommandNode.html">CliGen::CommandNode(Nil)</a></code></h3>
<a href="../CliGen/CommandNode.html#new%28name%3AString%2Cflags%3AArray%28CliGen%3A%3ABaseFlag%29%2Ccommands%3AArray%28CliGen%3A%3ACommandNode%29%2Cpre_run_commands%3AArray%28_%29%2Cpost_run_commands%3AArray%28_%29%29-class-method" class="tooltip">
<span>new(name : String, flags : Array(CliGen::BaseFlag), commands : Array(CliGen::CommandNode), pre_run_commands : Array(_), post_run_commands : Array(_))</span>
<a href="../CliGen/CommandNode.html#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cdescription%3AString%7CNil%3Dnil%29-class-method" class="tooltip">
<span>new(name : String, flags : Array(BaseFlag), commands : Array(BaseCommandNode), pre_run_commands : Array(RunCommand), post_run_commands : Array(RunCommand), description : String | Nil = <span class="n">nil</span>)</span>
new</a>
<h3>Instance methods inherited from class <code><a href="../CliGen/BaseCommandNode.html">CliGen::BaseCommandNode</a></code></h3>
<a href="../CliGen/BaseCommandNode.html#all_flags%3AArray%28BaseFlag%29-instance-method" class="tooltip">
<span>all_flags : Array(BaseFlag)</span>
all_flags</a>,
<a href="../CliGen/BaseCommandNode.html#check%21%3ANil-instance-method" class="tooltip">
<span>check! : Nil</span>
check!</a>,
<a href="../CliGen/BaseCommandNode.html#check_for_duplicate_flags%21%28flags%3AArray%28BaseFlag%29%29%3ANil-instance-method" class="tooltip">
<span>check_for_duplicate_flags!(flags : Array(BaseFlag)) : Nil</span>
check_for_duplicate_flags!</a>,
<a href="../CliGen/BaseCommandNode.html#check_for_duplicate_subcommands%21-instance-method" class="tooltip">
<span>check_for_duplicate_subcommands!</span>
check_for_duplicate_subcommands!</a>,
<a href="../CliGen/BaseCommandNode.html#commands%3AArray%28BaseCommandNode%29-instance-method" class="tooltip">
<span>commands : Array(BaseCommandNode)</span>
commands</a>,
<a href="../CliGen/BaseCommandNode.html#description%3AString%7CNil-instance-method" class="tooltip">
<span>description : String | Nil</span>
description</a>,
<a href="../CliGen/BaseCommandNode.html#find_match%28arg%3AString%29-instance-method" class="tooltip">
<span>find_match(arg : String)</span>
find_match</a>,
<a href="../CliGen/BaseCommandNode.html#flag%3F%28arg%3AString%29%3ABaseFlag%7CNil-instance-method" class="tooltip">
<span>flag?(arg : String) : BaseFlag | Nil</span>
flag?</a>,
<a href="../CliGen/BaseCommandNode.html#flags%3AArray%28BaseFlag%29-instance-method" class="tooltip">
<span>flags : Array(BaseFlag)</span>
flags</a>,
<a href="../CliGen/BaseCommandNode.html#get%28%2A%2Clong%3AString%29%3ABaseFlag%7CNil-instance-method" class="tooltip">
<span>get(*, long : String) : BaseFlag | Nil<br/>get(*, short : String) : BaseFlag | Nil</span>
get</a>,
<a href="../CliGen/BaseCommandNode.html#handle_flag_raises%28%26%29%3ANil-instance-method" class="tooltip">
<span>handle_flag_raises(&) : Nil</span>
handle_flag_raises</a>,
<a href="../CliGen/BaseCommandNode.html#meta%3ACommandMeta-instance-method" class="tooltip">
<span>meta : CommandMeta</span>
meta</a>,
<a href="../CliGen/BaseCommandNode.html#name%3AString-instance-method" class="tooltip">
<span>name : String</span>
name</a>,
<a href="../CliGen/BaseCommandNode.html#process%28args%3AArray%28String%29%29%3ANil-instance-method" class="tooltip">
<span>process(args : Array(String)) : Nil<br/>process(args : Array(CliGen::Arg)) : Nil</span>
process</a>,
<a href="../CliGen/BaseCommandNode.html#subcommand%3F%28arg%3AString%29%3ABool-instance-method" class="tooltip">
<span>subcommand?(arg : String) : Bool</span>
subcommand?</a>,
<a href="../CliGen/BaseCommandNode.html#subcommands%3AArray%28SubCommandInfo%29-instance-method" class="tooltip">
<span>subcommands : Array(SubCommandInfo)</span>
subcommands</a>,
<a href="../CliGen/BaseCommandNode.html#subcommands%3F%3ABool-instance-method" class="tooltip">
<span>subcommands? : Bool</span>
subcommands?</a>
<h3>Constructor methods inherited from class <code><a href="../CliGen/BaseCommandNode.html">CliGen::BaseCommandNode</a></code></h3>
<a href="../CliGen/BaseCommandNode.html#new%28name%3AString%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%2Cmeta%3ACommandMeta%2Cdescription%3AString%7CNil%3Dnil%29-class-method" class="tooltip">
<span>new(name : String, flags : Array(BaseFlag), commands : Array(BaseCommandNode), pre_run_commands : Array(RunCommand), post_run_commands : Array(RunCommand), meta : CommandMeta, description : String | Nil = <span class="n">nil</span>)</span>
new</a>
@@ -367,12 +663,12 @@ handles flag processing until it hands off to the user defined commands</p>
Constructor Detail
</h2>
<div class="entry-detail" id="new(name,flags,commands,pre_run_commands,post_run_commands)-class-method">
<div class="entry-detail" id="new(name,flags:Array(BaseFlag),commands:Array(BaseCommandNode),pre_run_commands:Array(RunCommand),post_run_commands:Array(RunCommand))-class-method">
<div class="signature">
def self.<strong>new</strong>(name, flags, commands, pre_run_commands, post_run_commands)
def self.<strong>new</strong>(name, flags : Array(<a href="../CliGen/BaseFlag.html">BaseFlag</a>), commands : Array(<a href="../CliGen/BaseCommandNode.html">BaseCommandNode</a>), pre_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>), post_run_commands : Array(<a href="../CliGen/RunCommand.html">RunCommand</a>))
<a class="method-permalink" href="#new%28name%2Cflags%2Ccommands%2Cpre_run_commands%2Cpost_run_commands%29-class-method">#</a>
<a class="method-permalink" href="#new%28name%2Cflags%3AArray%28BaseFlag%29%2Ccommands%3AArray%28BaseCommandNode%29%2Cpre_run_commands%3AArray%28RunCommand%29%2Cpost_run_commands%3AArray%28RunCommand%29%29-class-method">#</a>
</div>
<br/>
@@ -393,19 +689,31 @@ handles flag processing until it hands off to the user defined commands</p>
Class Method Detail
</h2>
<div class="entry-detail" id="process(args:Array(String)=ARGV)-class-method">
<div class="entry-detail" id="handle_command_raises(&amp;):Nil-class-method">
<div class="signature">
def self.<strong>process</strong>(args : Array(String) = <span class="t">ARGV</span>)
def self.<strong>handle_command_raises</strong>(&) : Nil
<a class="method-permalink" href="#process%28args%3AArray%28String%29%3DARGV%29-class-method">#</a>
<a class="method-permalink" href="#handle_command_raises%28%26%29%3ANil-class-method">#</a>
</div>
<br/>
<div>
</div>
</div>
<div class="entry-detail" id="process(args:Array(String)=ARGV.to_a):Nil-class-method">
<div class="signature">
def self.<strong>process</strong>(args : Array(String) = <span class="t">ARGV</span>.to_a) : Nil
<a class="method-permalink" href="#process%28args%3AArray%28String%29%3DARGV.to_a%29%3ANil-class-method">#</a>
</div>
<div class="doc">
<p>Serves as a convinence method for the user to call to begin processing an
argument array provided by the user.</p>
<p>This defaults to ARGV for convinence if no arguments are passed through</p>
<p>Convenience entry point; defaults to ARGV</p>
</div>
<br/>
@@ -442,6 +750,20 @@ argument array provided by the user.</p>
</div>
</div>
<div class="entry-detail" id="check_for_env_duplicates(flags:Array(BaseFlag))-instance-method">
<div class="signature">
def <strong>check_for_env_duplicates</strong>(flags : Array(<a href="../CliGen/BaseFlag.html">BaseFlag</a>))
<a class="method-permalink" href="#check_for_env_duplicates%28flags%3AArray%28BaseFlag%29%29-instance-method">#</a>
</div>
<br/>
<div>
</div>
</div>