gnu: r-excelr: Reuse minify-build-system tools.

* gnu/packages/cran.scm (r-excelr)[arguments]: Use minify-build-system.
[native-inputs]: Use git repository for jexcel.js.
[description]: Reformat.

Change-Id: I82f7e466bbab6ad837359f04ee616a7766433c13
This commit is contained in:
Ricardo Wurmus 2024-01-02 18:34:15 +01:00
parent 85dabe71e6
commit f1bf43cdff
No known key found for this signature in database
GPG key ID: 197A5888235FACAC

View file

@ -7437,6 +7437,10 @@ (define-public r-evmix
can safely interchange most code.") can safely interchange most code.")
(license license:gpl3))) (license license:gpl3)))
;; This package contains minified JavaScript: jExcel CE Spreadsheet,
;; version 3.9.1. It is not clear how to obtain this particular
;; version as there is no tag for 3.9.1. There only is 3.6.1 and
;; 4.2.0 at https://github.com/jspreadsheet/ce.
(define-public r-excelr (define-public r-excelr
(package (package
(name "r-excelr") (name "r-excelr")
@ -7452,37 +7456,44 @@ (define-public r-excelr
(properties `((upstream-name . "excelR"))) (properties `((upstream-name . "excelR")))
(build-system r-build-system) (build-system r-build-system)
(arguments (arguments
`(#:phases (list
(modify-phases %standard-phases #:modules
'((guix build r-build-system)
(guix build minify-build-system)
(guix build utils))
#:imported-modules
`(,@%r-build-system-modules
(guix build minify-build-system))
#:phases
#~(modify-phases (@ (guix build r-build-system) %standard-phases)
(add-after 'unpack 'process-javascript (add-after 'unpack 'process-javascript
(lambda* (#:key inputs #:allow-other-keys) (lambda* (#:key inputs #:allow-other-keys)
(with-directory-excursion "inst/htmlwidgets/lib/jexcel/js/" (with-directory-excursion "inst/htmlwidgets/lib/jexcel/js"
(let ((source (assoc-ref inputs "js-jexcel")) (minify (search-input-file inputs "/dist/jexcel.js")
(target "jexcel.min.js")) #:target "jexcel.min.js")))))))
(format #true "Processing ~a --> ~a~%" (propagated-inputs (list r-htmlwidgets r-jsonlite))
source target)
(invoke "esbuild" source "--minify"
(string-append "--outfile=" target)))))))))
(native-inputs (native-inputs
`(("esbuild" ,esbuild) (list esbuild
;; There is no tag for this particular commit, but comparison of the ;; There is no tag for this particular commit, but comparison of
;; contents of the JavaScript files point to this commit as the most ;; the contents of the JavaScript files point to this commit as the
;; likely source. ;; most likely source.
("js-jexcel" (let* ((commit "8af1960f76e6803bebc5750013d2ebe95354e88a")
,(origin (version (git-version "3.9.1" "0" commit)))
(method url-fetch) (origin
(uri (string-append "https://raw.githubusercontent.com/jspreadsheet/ce/" (method git-fetch)
"8af1960f76e6803bebc5750013d2ebe95354e88a/dist/jexcel.js")) (uri (git-reference
(url "https://github.com/jspreadsheet/ce")
(commit commit)))
(file-name (git-file-name "jexcel" version))
(sha256 (sha256
(base32 (base32
"0y88hsr9d8cpnvdmbm17m328pc4kc5wbcv02kzmhm0bryzhviw7h")))))) "1zk0wc4h0vax7zgimhwqq2icrvjr84agm3qv42l16gim7gq7fqfq"))))))
(propagated-inputs (list r-htmlwidgets r-jsonlite))
(home-page "https://github.com/Swechhya/excelR") (home-page "https://github.com/Swechhya/excelR")
(synopsis "Wrapper of the JavaScript library jExcel") (synopsis "Wrapper of the JavaScript library jExcel")
(description (description
"This package provides an R interface to the jExcel library to "This package provides an R interface to the jExcel library to create
create web-based interactive tables and spreadsheets compatible with web-based interactive tables and spreadsheets compatible with spreadsheet
spreadsheet software.") software.")
(license license:expat))) (license license:expat)))
(define-public r-extremes (define-public r-extremes