* Add a Nix expression search path feature. Paths between angle
brackets, e.g.
import <nixpkgs/pkgs/lib>
are resolved by looking them up relative to the elements listed in
the search path. This allows us to get rid of hacks like
import "${builtins.getEnv "NIXPKGS_ALL"}/pkgs/lib"
The search path can be specified through the ‘-I’ command-line flag
and through the colon-separated ‘NIX_PATH’ environment variable,
e.g.,
$ nix-build -I /etc/nixos ...
If a file is not found in the search path, an error message is
lazily thrown.
This commit is contained in:
@@ -181,6 +181,12 @@ EvalState::EvalState()
|
||||
gcInitialised = true;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Initialise the Nix expression search path. */
|
||||
searchPathInsertionPoint = searchPath.end();
|
||||
Strings paths = tokenizeString(getEnv("NIX_PATH", ""), ":");
|
||||
foreach (Strings::iterator, i, paths) addToSearchPath(*i);
|
||||
searchPathInsertionPoint = searchPath.begin();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user