Warn about missing -I paths
Fixes #121. Note that we don't warn about missing $NIX_PATH entries because it's intended that some may be missing (cf. the default $NIX_PATH on NixOS, which includes paths like /etc/nixos/nixpkgs for backward compatibility).
This commit is contained in:
parent
733214144a
commit
f14ef84a51
3 changed files with 6 additions and 5 deletions
|
@ -13,7 +13,7 @@ bool parseOptionArg(const string & arg, Strings::iterator & i,
|
|||
if (arg != "--arg" && arg != "--argstr") return false;
|
||||
|
||||
UsageError error(format("`%1%' requires two arguments") % arg);
|
||||
|
||||
|
||||
if (i == argsEnd) throw error;
|
||||
string name = *i++;
|
||||
if (i == argsEnd) throw error;
|
||||
|
@ -39,7 +39,7 @@ bool parseSearchPathArg(const string & arg, Strings::iterator & i,
|
|||
{
|
||||
if (arg != "-I") return false;
|
||||
if (i == argsEnd) throw UsageError(format("`%1%' requires an argument") % arg);;
|
||||
state.addToSearchPath(*i++);
|
||||
state.addToSearchPath(*i++, true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -120,7 +120,7 @@ public:
|
|||
EvalState();
|
||||
~EvalState();
|
||||
|
||||
void addToSearchPath(const string & s);
|
||||
void addToSearchPath(const string & s, bool warn = false);
|
||||
|
||||
/* Parse a Nix expression from the specified file. */
|
||||
Expr * parseExprFromFile(const Path & path);
|
||||
|
|
|
@ -608,7 +608,7 @@ Expr * EvalState::parseExprFromString(const string & s, const Path & basePath)
|
|||
}
|
||||
|
||||
|
||||
void EvalState::addToSearchPath(const string & s)
|
||||
void EvalState::addToSearchPath(const string & s, bool warn)
|
||||
{
|
||||
size_t pos = s.find('=');
|
||||
string prefix;
|
||||
|
@ -624,7 +624,8 @@ void EvalState::addToSearchPath(const string & s)
|
|||
if (pathExists(path)) {
|
||||
debug(format("adding path `%1%' to the search path") % path);
|
||||
searchPath.insert(searchPathInsertionPoint, std::pair<string, Path>(prefix, path));
|
||||
}
|
||||
} else if (warn)
|
||||
printMsg(lvlError, format("warning: Nix search path entry `%1%' does not exist, ignoring") % path);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue