- Added
:required
for:flags
- Remove debug call
-h
can now be used to get help, in addition to--help
- When encountering parse errors (invalid arguments), print a message and exit, rather than throwing (which looks quite ugly from a bb script)
- Allow a command spec to be just a function
- Preserve command order in help text when using a vector
- Bind the options map to
cli/*opts*
, for easy access. - Show the default for a flag in the help text.
- Add a docstring to the main entry point (
dispatch
) - Bind
*opts*
during flag handler execution
- Recognize
-
and\\--foo
as positional args
- When given both a
:default
and a:handler
for a flag, call the handler with the default, rather than just assoc-ing it. - When given a string
:default
and a:parse
function for a flag, run the default value through the parse function, rather than using it directly. Using the unparsed string form for the default is preferable over for instance using a keyword, since it leads to better help text rendering. - Improve and document the processing logic, especially when it comes to subcommand flags with handler functions.
Much expanded and improved version, see README for all details. This is approaching the envisioned scope for this library.
- take docstring/command from var
:strict?
mode:handler
and:middleware
on flags- Much improved help text rendering
- More lenient flag parsing
- Add
:default
and:parse
- Handle named command arguments
- Support
--flag FOO
and--flag=<foo>
(and--flag <foo>
) - Boolean flags count by default, e.g.
-vvv
=>{:verbose 3}
- Command handlers take a single unified map
- subcommand handling
- rudimentary flag handling
- help text generation