Hello everyone,

I am happy to announce the beta release of the next version of
clojure.tools.cli:

    https://github.com/clojure/tools.cli#new-features

Leiningen dependency information:

    [org.clojure/tools.cli "0.3.0-beta1"]

Maven dependency information:

    <dependency>
      <groupId>org.clojure</groupId>
      <artifactId>tools.cli</artifactId>
      <version>0.3.0-beta1</version>
    </dependency>

The project README linked above has the details, but here is a summary:

  * There is a new function, clojure.tools.cli/parse-opts, that supports

    - GNU option conventions (`-abc` -> `-a -b -c`, `--long-opt=ARG`)
    - In-order argument processing (for separate subcommand options)
    - Option argument validations
    - Custom option summaries
    - Error handling without throwing exceptions

  * tools.cli now ships with a ClojureScript namespace:

      cljs.tools.cli

    parse-opts has been ported to CLJS with feature parity.

  * The previous function, clojure.tools.cli/cli, has been adapted to
    use the new option tokenizer, but otherwise remains unchanged.
    Upgrading is therefore encouraged even if you do not plan on
    migrating to parse-opts.

    Though it has been superseded, cli/cli will not be removed in the
    forseeable future.

My goal with this new version is to convince application and library
authors to choose tools.cli/parse-opts over hand-rolled parsers!

In pursuit of this, I welcome feedback from the community so we can make
amendments before a final release.

Finally, I would like to express sincere thanks to Gareth Jones for
giving me the opportunity to contribute to the tools.cli project.

    Cheers,
    Sung Pae

Attachment: pgpXoqWmJQKEz.pgp
Description: PGP signature

Reply via email to