diff options
author | Pierre Neidhardt <mail@ambrevar.xyz> | 2020-01-03 11:59:25 +0100 |
---|---|---|
committer | Pierre Neidhardt <mail@ambrevar.xyz> | 2020-01-03 15:03:36 +0100 |
commit | ba42da245bdb50aa98eecfeea8d207cefa209d48 (patch) | |
tree | 1291f6177ec386cf81e5d1fd354e8145f0ae08d9 /gnu/packages/lisp-xyz.scm | |
parent | 0aa203717eccf9cb6ed2ae0d9e91625aa60e32ec (diff) | |
download | guix-ba42da245bdb50aa98eecfeea8d207cefa209d48.tar guix-ba42da245bdb50aa98eecfeea8d207cefa209d48.tar.gz |
gnu: uglify-js: Move back next to sbcl-cl-uglify-js definition.
This fixes the bug which prevented uglify-js from being defined properly, and
cascaded back to all Common Lisp packages.
* gnu/packages/bioinformatics.scm: Replace javascript module with lisp-xyz.
* gnu/packages/cran.scm: Use lisp-xyz module.
* gnu/packages/javascript.scm (uglify-js): Move from here...
* gnu/packages/lisp-xyz.scm: ... To here.
* gnu/packages/web.scm: Replace javascript module with lisp-xyz.
* guix/build-system/minify.scm: Find uglify-js in the lisp-xyz module.
Diffstat (limited to 'gnu/packages/lisp-xyz.scm')
-rw-r--r-- | gnu/packages/lisp-xyz.scm | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm index 3589640653..96d31118d7 100644 --- a/gnu/packages/lisp-xyz.scm +++ b/gnu/packages/lisp-xyz.scm @@ -823,6 +823,53 @@ compressor. It works on data produced by @code{parse-js} to generate a (define-public cl-uglify-js (sbcl-package->cl-source-package sbcl-cl-uglify-js)) +(define-public uglify-js + (package + (inherit sbcl-cl-uglify-js) + (name "uglify-js") + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder + (let* ((bin (string-append (assoc-ref %outputs "out") "/bin/")) + (script (string-append bin "uglify-js"))) + (use-modules (guix build utils)) + (mkdir-p bin) + (with-output-to-file script + (lambda _ + (format #t "#!~a/bin/sbcl --script + (require :asdf) + (push (truename \"~a/lib/sbcl\") asdf:*central-registry*)" + (assoc-ref %build-inputs "sbcl") + (assoc-ref %build-inputs "sbcl-cl-uglify-js")) + ;; FIXME: cannot use progn here because otherwise it fails to + ;; find cl-uglify-js. + (for-each + write + '(;; Quiet, please! + (let ((*standard-output* (make-broadcast-stream)) + (*error-output* (make-broadcast-stream))) + (asdf:load-system :cl-uglify-js)) + (let ((file (cadr *posix-argv*))) + (if file + (format t "~a" + (cl-uglify-js:ast-gen-code + (cl-uglify-js:ast-mangle + (cl-uglify-js:ast-squeeze + (with-open-file (in file) + (parse-js:parse-js in)))) + :beautify nil)) + (progn + (format *error-output* + "Please provide a JavaScript file.~%") + (sb-ext:exit :code 1)))))))) + (chmod script #o755) + #t))) + (inputs + `(("sbcl" ,sbcl) + ("sbcl-cl-uglify-js" ,sbcl-cl-uglify-js))) + (synopsis "JavaScript compressor"))) + (define-public sbcl-cl-strings (let ((revision "1") (commit "c5c5cbafbf3e6181d03c354d66e41a4f063f00ae")) |