diff --git a/modules/env.nix b/modules/env.nix index 4035d97b..a076e180 100644 --- a/modules/env.nix +++ b/modules/env.nix @@ -64,7 +64,7 @@ let else if valType == "eval" then "export ${name}=${eval}" else if valType == "prefix" then - ''export ${name}=$(${pkgs.coreutils}/bin/realpath --canonicalize-missing ${escapeShellArg prefix})''${${name}+:''${${name}}}'' + ''export ${name}=$(${pkgs.coreutils}/bin/realpath --canonicalize-missing "${prefix}")''${${name}+:''${${name}}}'' else if valType == "unset" then ''unset ${name}'' else diff --git a/tests/extra/language.c.nix b/tests/extra/language.c.nix index 0b1619d3..3ee397db 100644 --- a/tests/extra/language.c.nix +++ b/tests/extra/language.c.nix @@ -16,4 +16,20 @@ # Has a C compiler type -p clang ''; + # Test good LD_LIBRARY_PATH value + language-c-2 = + let + shell = devshell.mkShell { + imports = [ ../../extra/language/c.nix ]; + devshell.name = "devshell-2"; + language.c.libraries = [ pkgs.openssl ]; + }; + in + runTest "language-c-2" { } '' + # Load the devshell + source ${shell}/env.bash + + # LD_LIBRARY_PATH is evaluated correctly + [[ ! "$LD_LIBRARY_PATH" =~ "DEVSHELL_DIR" ]] + ''; }