emacs: support __structuredAttrs in elisp build helpers

This commit is contained in:
Lin Jian
2025-03-05 14:07:47 +08:00
parent c6fef55616
commit f698c4dd15
3 changed files with 10 additions and 14 deletions
@@ -43,7 +43,9 @@ lib.extendMkDerivation {
emacs --batch -Q -l "$elpa2nix" \
-f elpa2nix-install-package \
"$src" "$out/share/emacs/site-lisp/elpa"
"$src" "$out/share/emacs/site-lisp/elpa" \
${if finalAttrs.turnCompilationWarningToError then "t" else "nil"} \
${if finalAttrs.ignoreCompilationError then "t" else "nil"}
runHook postInstall
'';
@@ -5,8 +5,10 @@
(if (not noninteractive)
(error "`elpa2nix-install-package' is to be used only with -batch"))
(pcase command-line-args-left
(`(,archive ,elpa)
(progn (setq package-user-dir elpa)
(`(,archive ,elpa ,turn-compilation-warning-to-error ,ignore-compilation-error)
(progn (setq byte-compile-error-on-warn (string= turn-compilation-warning-to-error "t"))
(setq byte-compile-debug (string= ignore-compilation-error "nil"))
(setq package-user-dir elpa)
(elpa2nix-install-file archive)))))
(defun elpa2nix-install-from-buffer ()
@@ -31,13 +33,3 @@ The file can either be a tar file or an Emacs Lisp file."
;; Allow installing package tarfiles larger than 10MB
(setq large-file-warning-threshold nil)
(let ((flag (getenv "turnCompilationWarningToError")))
(when (and flag
;; we do not use `string-empty-p' because it requires subr-x in Emacs <= 26
(not (string= flag "")))
(setq byte-compile-error-on-warn t)))
(let ((flag (getenv "ignoreCompilationError")))
(when (string= flag "")
(setq byte-compile-debug t)))
@@ -185,7 +185,9 @@ lib.extendMkDerivation {
emacs --batch -Q \
-l "$elpa2nix" \
-f elpa2nix-install-package \
"$archive" "$out/share/emacs/site-lisp/elpa"
"$archive" "$out/share/emacs/site-lisp/elpa" \
${if finalAttrs.turnCompilationWarningToError then "t" else "nil"} \
${if finalAttrs.ignoreCompilationError then "t" else "nil"}
runHook postInstall
'';