dev: handle blank shell.nix inputs properly

If doomdir, emacsdir, and/or doomlocaldir were blank, / would be treated
as their value, which will fail in some spectacular (and some quiet)
ways.
This commit is contained in:
Henrik Lissner 2022-09-10 14:25:22 +02:00
parent b5b0d5de1c
commit c59fe8596f
No known key found for this signature in database
GPG Key ID: B60957CA074D39A3

View File

@ -75,9 +75,15 @@ in pkgs.stdenv.mkDerivation {
shellHook = ''
export EMACS="${emacsPkg}/bin/emacs"
export EMACSVERSION="$($EMACS --no-site-file --batch --eval '(princ emacs-version)')"
export EMACSDIR="$(readlink -f "${emacsdir}")/"
export DOOMDIR="$(readlink -f "${doomdir}")/"
export DOOMLOCALDIR="$(readlink -f "${doomlocaldir}").$EMACSVERSION/"
if [[ -n "${emacsdir}" ]]; then
export EMACSDIR="$(readlink -f "${emacsdir}")/"
fi
if [[ -n "${doomdir}" ]]; then
export DOOMDIR="$(readlink -f "${doomdir}")/"
fi
if [[ -n "${doomlocaldir}" ]]; then
export DOOMLOCALDIR="$(readlink -f "${doomlocaldir}").$EMACSVERSION/"
fi
export DOOMNOCOMPILE=1
export PATH="$EMACSDIR/bin:$PATH"
@ -91,7 +97,7 @@ in pkgs.stdenv.mkDerivation {
mkdir -p "$DOOMLOCALDIR/straight"
pushd "$DOOMLOCALDIR/straight" >/dev/null
if [[ -d "$EMACSDIR/.local/straight/repos" && ! -d ./repos ]]; then
echo "Copying '$EMACSDIR/.local/straight/repos' to './$(basename $DOOMLOCALDIR)straight/repos' to save time"
echo "Copying '$EMACSDIR/.local/straight/repos' to './$(basename $DOOMLOCALDIR)/straight/repos' to save time"
cp -r "$EMACSDIR/.local/straight/repos" ./repos
fi
popd >/dev/null