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
|
@ -71,6 +71,7 @@ (define-module (gnu packages java)
|
|||
#: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 @@ (define-public java-jline-2
|
|||
("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")
|
||||
|
|
Loading…
Reference in a new issue