mirror of
https://github.com/NixOS/nix
synced 2024-09-19 10:50:24 -04:00
only set default values for nix-path
if nothing else is set
TODO: this doesn't work yet.
we currently have no way of checking if a config value was set or not.
this is the expected behavior for default values:
new values should override them, not prepend.
the change fixes a logic bug introduced when fixing the previously confused
override mechanism in e062021314
.
This commit is contained in:
parent
4c7a6ffee7
commit
4a920b46da
|
@ -101,7 +101,7 @@ void initGC()
|
|||
#endif
|
||||
|
||||
// NIX_PATH must override the regular setting
|
||||
// See the comment in applyConfig
|
||||
// See the XXX comment in `applyConfig()`
|
||||
if (auto nixPathEnv = getEnv("NIX_PATH")) {
|
||||
globalConfig.set("nix-path", concatStringsSep(" ", EvalSettings::parseNixPath(nixPathEnv.value())));
|
||||
}
|
||||
|
|
|
@ -341,6 +341,7 @@ EvalState::EvalState(
|
|||
for (auto & i : settings.nixPath.get()) {
|
||||
lookupPath.elements.emplace_back(LookupPath::Elem::parse(i));
|
||||
}
|
||||
// TODO: only set if nothing else is
|
||||
if (!settings.restrictEval) {
|
||||
for (auto & i : EvalSettings::getDefaultNixPath()) {
|
||||
lookupPath.elements.emplace_back(LookupPath::Elem::parse(i));
|
||||
|
|
|
@ -42,6 +42,12 @@ done
|
|||
# finding something that's not in any of the default paths fails
|
||||
( ! $(nix-instantiate --find-file test) )
|
||||
|
||||
# setting anything overrides the default paths
|
||||
# this ensures we can force an empty search path
|
||||
[[ $(NIX_PATH= nix-instantiate --eval -E 'with builtins; length nixPath') = 0 ]]
|
||||
[[ $(nix-instantiate --nix-path "" --eval -E 'with builtins; length nixPath') = 0 ]]
|
||||
[[ $(nix-instantiate -I "" --eval -E 'with builtins; length nixPath') = 1 ]]
|
||||
|
||||
echo "nix-path = test=$TEST_ROOT/from-nix-path-file" >> "$test_nix_conf"
|
||||
|
||||
# Use nix.conf in absence of NIX_PATH
|
||||
|
|
Loading…
Reference in a new issue