23d4bfb666
If I'm running an Emacs executable from emacsWithPackages as my main programming environment, and I'm hacking on Emacs, or the Emacs packaging in Nixpkgs, or whatever, I don't want the Emacs packages from the wrapper to show up in the load path of that child Emacs. It results in differing behaviour depending on whether the child Emacs is run from Emacs or from, for example, an external terminal emulator, which is very surprising. To avoid this, pass another environment variable containing the wrapper site-lisp path, and use that value to remove the corresponding entry in EMACSLOADPATH, so it won't be propagated to child Emacsen.
28 lines
476 B
Bash
28 lines
476 B
Bash
#!@bash@
|
|
|
|
IFS=:
|
|
|
|
newLoadPath=()
|
|
added=
|
|
|
|
if [[ -n $EMACSLOADPATH ]]
|
|
then
|
|
while read -rd: entry
|
|
do
|
|
if [[ -z $entry && -z $added ]]
|
|
then
|
|
newLoadPath+=(@wrapperSiteLisp@)
|
|
added=1
|
|
fi
|
|
newLoadPath+=("$entry")
|
|
done <<< "$EMACSLOADPATH:"
|
|
else
|
|
newLoadPath+=(@wrapperSiteLisp@)
|
|
newLoadPath+=("")
|
|
fi
|
|
|
|
export EMACSLOADPATH="${newLoadPath[*]}"
|
|
export emacsWithPackages_siteLisp=@wrapperSiteLisp@
|
|
|
|
exec @prog@ "$@"
|