gnu: Add java-jline-terminal.
This is part of JLine 3. I was able to get this working properly under Guix by providing ncurses' infocmp, as well as ensuring the *.caps files were present in the JAR, but similar methods didn't work for the tests; if you have Java knowledge, I'd appreciate the help getting those tests enabled. * gnu/packages/java.scm (java-jline-terminal): New variable. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
		
							parent
							
								
									e28ea14693
								
							
						
					
					
						commit
						1700dfefbe
					
				
					 1 changed files with 58 additions and 0 deletions
				
			
		|  | @ -71,6 +71,7 @@ | |||
|   #:use-module (gnu packages maths) | ||||
|   #:use-module (gnu packages maven) | ||||
|   #:use-module (gnu packages maven-parent-pom) | ||||
|   #:use-module (gnu packages ncurses) | ||||
|   #:use-module (gnu packages nss) | ||||
|   #:use-module (gnu packages onc-rpc) | ||||
|   #:use-module (gnu packages web) | ||||
|  | @ -12503,6 +12504,63 @@ features that bring it on par with the Z shell line editor.") | |||
|        ("java-junit" ,java-junit) | ||||
|        ("java-hawtjni" ,java-hawtjni))))) | ||||
| 
 | ||||
| (define-public java-jline-terminal | ||||
|   (package | ||||
|     (name "java-jline-terminal") | ||||
|     (version "3.14.1") | ||||
|     (source (origin | ||||
|               (method git-fetch) | ||||
|               (uri (git-reference | ||||
|                     (url "https://github.com/jline/jline3") | ||||
|                     (commit (string-append "jline-parent-" version)))) | ||||
|               (file-name (git-file-name name version)) | ||||
|               (sha256 | ||||
|                (base32 | ||||
|                 "0ilhk9ljp0pivl1rn0bb06syshc67p6imcjhrg6vr7kv15p3w4lr")))) | ||||
|     (build-system ant-build-system) | ||||
|     (arguments | ||||
|      `(#:jar-name "jline-terminal.jar" | ||||
|        #:jdk ,openjdk11 | ||||
|        #:tests? #f; TODO: tests fail on *.caps resource lookups | ||||
|        #:source-dir "terminal/src/main/java" | ||||
|        #:test-dir "terminal/src/test" | ||||
|        #:phases | ||||
|        (modify-phases %standard-phases | ||||
|          (add-after 'unpack 'remove-build-file | ||||
|            (lambda _ | ||||
|              ;; Conflicts with build directory generated by ant-build-system. | ||||
|              (delete-file "build"))) | ||||
|          (add-after 'unpack 'patch-paths | ||||
|            (lambda* (#:key inputs #:allow-other-keys) | ||||
|              (substitute* "terminal/src/main/java/org/jline/utils/OSUtils.java" | ||||
|                (("= \"infocmp\"") | ||||
|                 (string-append "= \"" (assoc-ref inputs "ncurses") | ||||
|                                "/bin/infocmp\"")) | ||||
|                (("= \"(s?tty)\"" _ cmd) | ||||
|                 (string-append "= \"" (assoc-ref inputs "coreutils") | ||||
|                                "/bin/" cmd "\""))))) | ||||
|          ;; Resources are not added to the JAR by ant-build-system. | ||||
|          (add-after 'build 'add-resources | ||||
|            (lambda* (#:key jar-name source-dir #:allow-other-keys) | ||||
|              (let ((build (string-append (getcwd) "/build"))) | ||||
|                (with-directory-excursion | ||||
|                    (string-append source-dir "/../resources") | ||||
|                  (apply invoke "jar" "-uvf" | ||||
|                         (string-append build "/jar/" jar-name) | ||||
|                         (find-files "."))))))))) | ||||
|     (inputs | ||||
|      `(("ncurses" ,ncurses))); infocmp | ||||
|     (home-page "https://github.com/jline/jline3") | ||||
|     (synopsis "Java JLine Terminal API and implementations") | ||||
|     (description "JLine is a Java library for handling console input.  It is | ||||
| similar in functionality to BSD editline and GNU readline but with additional | ||||
| features that bring it in par with ZSH line editor.  People familiar with the | ||||
| readline/editline capabilities for modern shells (such as bash and tcsh) will | ||||
| find most of the command editing features of JLine to be familiar. | ||||
| 
 | ||||
| This package includes the @var{Terminal} API and implementations.") | ||||
|     (license license:bsd-3))) | ||||
| 
 | ||||
| (define-public java-xmlunit | ||||
|   (package | ||||
|     (name "java-xmlunit") | ||||
|  |  | |||
		Reference in a new issue