mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-02 04:50:21 +00:00
emacs/wrapper.nix: expose extra package binaries via PATH
The withPackages wrapper aggregates extraEmacsPackages binaries under emacs-packages-deps/bin. That directory is added to exec-path but the PATH environment variable is left untouched. Tools that rebuild process-environment from PATH (notably direnv/envrc) lose access to them. Mirror the existing exec-path entry into PATH from the generated `site-start.el` file. This makes subprocess environment reconstruction see those binaries. Refs: https://github.com/purcell/envrc/issues/9
This commit is contained in:
@@ -180,6 +180,13 @@ runCommand (lib.appendToName "with-packages" emacs).name
|
||||
;; "$out/share/emacs/site-lisp" is added to load-path in wrapper.sh
|
||||
;; "$out/share/emacs/native-lisp" is added to native-comp-eln-load-path in wrapper.sh
|
||||
(add-to-list 'exec-path "$out/bin")
|
||||
;; Also expose extra package binaries via PATH so that subprocesses
|
||||
;; which rebuild their environment from PATH (e.g. direnv/envrc) can
|
||||
;; still find them. See https://github.com/purcell/envrc/issues/9
|
||||
(let ((deps-bin "$out/bin")
|
||||
(current-path (or (getenv "PATH") "")))
|
||||
(unless (member deps-bin (split-string current-path path-separator))
|
||||
(setenv "PATH" (concat deps-bin path-separator current-path))))
|
||||
${lib.optionalString withTreeSitter ''
|
||||
(add-to-list 'treesit-extra-load-path "$out/lib/")
|
||||
''}
|
||||
|
||||
Reference in New Issue
Block a user