optparse-clj is a command line options parser that supports GNU option parsing conventions.
The interface is modelled after clojure.tools.cli¹, but the parser is more flexible:
* `-abc` expands to `-a -b -c`
* If -b requires an argument, `-abc` is parsed as `-a -b "c"`
* Long options are supported with and without equal signs:
`--foo=bar` and `--foo bar`. `--foo=` is the same as `--foo ""`
* Trailing options are supported by default:
`arg -abc` == `-abc arg`
But options can also be processed in order in the interest of building command hierarchies:
(parse argv cli-options :in-order true)
There is plenty of documentation, as well as a full sample program with subcommands.