emacs: allow wrapped emacs to execute itself again (#361145)

This commit is contained in:
Lin Jian
2024-12-06 16:38:58 +08:00
committed by GitHub
3 changed files with 17 additions and 0 deletions
@@ -198,6 +198,8 @@ runCommand
--subst-var-by bash ${emacs.stdenv.shell} \
--subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
--subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp" \
--subst-var-by wrapperInvocationDirectory "$out/bin/" \
--subst-var-by wrapperInvocationName "$progname" \
--subst-var prog
chmod +x $out/bin/$progname
# Create a NOP binary wrapper for the pure sake of it becoming a
@@ -222,6 +224,8 @@ runCommand
--subst-var-by bash ${emacs.stdenv.shell} \
--subst-var-by wrapperSiteLisp "$deps/share/emacs/site-lisp" \
--subst-var-by wrapperSiteLispNative "$deps/share/emacs/native-lisp" \
--subst-var-by wrapperInvocationDirectory "$out/Applications/Emacs.app/Contents/MacOS/" \
--subst-var-by wrapperInvocationName "Emacs" \
--subst-var-by prog "$emacs/Applications/Emacs.app/Contents/MacOS/Emacs"
chmod +x $out/Applications/Emacs.app/Contents/MacOS/Emacs
wrapProgramBinary $out/Applications/Emacs.app/Contents/MacOS/Emacs
+3
View File
@@ -50,4 +50,7 @@ export emacsWithPackages_siteLisp=@wrapperSiteLisp@
export EMACSNATIVELOADPATH="${newNativeLoadPath[*]}"
export emacsWithPackages_siteLispNative=@wrapperSiteLispNative@
export emacsWithPackages_invocationDirectory=@wrapperInvocationDirectory@
export emacsWithPackages_invocationName=@wrapperInvocationName@
exec @prog@ "$@"
@@ -39,6 +39,16 @@ least specific (the system profile)"
(setenv "EMACSNATIVELOADPATH" (when new-env-list
(mapconcat 'identity new-env-list ":"))))))
(let ((wrapper-invocation-directory (getenv "emacsWithPackages_invocationDirectory")))
(when wrapper-invocation-directory
(setq invocation-directory (file-name-as-directory wrapper-invocation-directory))
(setenv "emacsWithPackages_invocationDirectory" nil)))
(let ((wrapper-invocation-name (getenv "emacsWithPackages_invocationName")))
(when wrapper-invocation-name
(setq invocation-name wrapper-invocation-name)
(setenv "emacsWithPackages_invocationName" nil)))
;;; Set up native-comp load path.
(when (featurep 'native-compile)
;; Append native-comp subdirectories from `NIX_PROFILES'.