Subject: bug#26803: [PATCH 18/36] gnu: Add java-commons-cli.

From: Roel Janssen <[email-masked]>
Date: Mon, 08 May 2017 16:13:15 +0200

Ricardo Wurmus writes:

> From: Hartmut Goebel <[email-masked]>
>
> * gnu/packages/java.scm (java-commons-cli): New variable.
>
> Co-authored-by: Ricardo Wurmus <[email-masked]>
> ---
>  gnu/packages/java.scm | 37 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 37 insertions(+)
>
> diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
> index 3e422ac80..0220435af 100644
> --- a/gnu/packages/java.scm
> +++ b/gnu/packages/java.scm
> @@ -1784,3 +1784,40 @@ included:
>    @code{hashCode}, @code{compareTo} and @code{toString} methods.
>  @end itemize\n")
>      (license license:asl2.0)))
> +
> +(define-public java-commons-cli
> +  (package
> +    (name "java-commons-cli")
> +    (version "1.3.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "mirror://apache/commons/cli/source/"
> +                                  "commons-cli-" version "-src.tar.gz"))
> +              (sha256
> +               (base32
> +                "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl"))))
> +    (build-system ant-build-system)
> +    ;; TODO: javadoc
> +    (arguments
> +     `(#:jar-name "commons-cli.jar"))
> +    (native-inputs
> +     `(("java-junit" ,java-junit)
> +       ("java-hamcrest-core" ,java-hamcrest-core)))
> +    (home-page "http://commons.apache.org/cli/")
> +    (synopsis "Command line arguments and options parsing library")
> +    (description "The Apache Commons CLI library provides an API for parsing
> +command line options passed to programs.  It is also able to print help
> +messages detailing the options available for a command line tool.
> +
> +Commons CLI supports different types of options:
> +
> +@itemize
> +@item POSIX like options (ie. tar -zxvf foo.tar.gz)
> +@item GNU like long options (ie. du --human-readable --max-depth=1)
> +@item Java like properties (ie. java -Djava.awt.headless=true Foo)
> +@item Short options with value attached (ie. gcc -O2 foo.c)
> +@item long options with single hyphen (ie. ant -projecthelp)
> +@end itemize
> +
> +This is a part of the Apache Commons Project.")
> +    (license license:asl2.0)))

Even though there's a to-do for the Javadoc documentation stuff, this is
LGTM, because it is not essential to its functioning.

Kind regards,
Roel Janssen