Subject: [bug#36605] [PATCH 06/12] gnu: Add java-commons-cli.

From: Hartmut Goebel <[email-masked]>
Date: Thu, 11 Jul 2019 22:26:28 +0200

* gnu/packages/java.scm (appache-commons-url): New function.
  (java-commons-cli): New variable.
---
 gnu/packages/java.scm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 3687c7e..a83423d 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1316,3 +1316,51 @@ It has its foundation in the org.codehaus.plexus.utils.interpolation package
 within plexus-utils, but has been separated in order to allow these two
 libraries to vary independently of one another.")
     (license license:asl2.0)))
+
+;
+; apache commons
+;
+
+(define* (apache-commons-url projname version
+                             #:optional (basename
+                                         (string-append "commons-" projname)))
+  (string-append "mirror://apache/commons/" projname "/source/"
+                 basename "-" version "-src.tar.gz"))
+
+(define-public java-commons-cli
+  (package
+    (name "java-commons-cli")
+    (version "1.3.1")
+    (source (origin
+      (method url-fetch)
+      (uri (apache-commons-url "cli" version))
+      (sha256 (base32 "1fkjn552i12vp3xxk21ws4p70fi0lyjm004vzxsdaz7gdpgyxxyl"))))
+    (build-system ant-build-system)
+    ; todo: javadoc
+    (arguments
+     ; commons-cli does not provida a proper build.xml but seems to require
+     ; maven for building
+     `(#:jar-name (string-append "commons-cli-" ,version ".jar")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'check))))
+    (native-inputs
+     `(("java-junit" ,java-junit)))
+    (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's 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)))
-- 
2.7.4