6f31a5d27c40e0ac64cedc5734a2a9075ec8113e
- BaseCommandNode (abstract) / CommandNode(T) split for heterogeneous tree - Flag(T) with compile-time type branching, Parsable/Coercable modules - Arg double-process invariant enforcement - App.generate macro builds CommandNode tree from Command subclasses - Command#initialize generated via macro finished, populates ivars from handler - Reserved -h/--help enforcement in Flag#check! - MatchType::Help added, SubCommand dispatch fixed - design.adoc: added Planned Features (markdown docs, bash completion) - Makefile: tabs, .DEFAULT_GOAL, doc_show target Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
CliGenerator
This is a crystal project to manage setting up OptionParser objects based around "Command" objects and arguments you define inside them.
Installation
-
Add the dependency to your
shard.yml:dependencies: cligen: git: https://git.arcanium.tech/tristan/cligen -
Run
shards install
Usage
require "cligen"
Contributors
- Tristan Ancelet - creator and maintainer
Languages
Crystal
100%