Skip to content

v1.2.0

Latest

Choose a tag to compare

@kasapdev kasapdev released this 07 Sep 20:05

Added

  • Subcommand support on ArgParser. ArgParser subcommand(String name) registers a
    named subcommand and returns its own independent ArgParser, configured with the same
    addFlag/addOption builder methods as the top-level parser.
  • ArgParser.parse(String[]) now dispatches on the first argument when one or more
    subcommands are registered: a match parses the remaining arguments against that
    subcommand's own parser; an unrecognized name throws ArgParseException.
  • ParsedArgs.subcommandName() / ParsedArgs.subcommand() expose the invoked subcommand's
    name and its own, independently-parsed result.
  • A parser with no registered subcommands is completely unaffected — fully backwards
    compatible with v1.1.0.

Tested

  • Two subcommands registering an overlapping option name (--port) with different shapes
    (a value-taking option on one, a boolean flag on the other) parse independently, proving
    no cross-contamination between subcommand registrations.
  • Parsing an unrecognized subcommand name throws ArgParseException naming the bad token.
  • All existing tests continue to pass unmodified.

Docs

  • New ## Subcommands section in the README with a runnable deploy/rollback example.
  • A second worked example added to ## Usage.

See CHANGELOG.md for full details.