forked from lix-project/lix
Add a trace to all errors in addPath()
This commit is contained in:
parent
4806f2f6b0
commit
c4dcf3cf25
|
@ -1847,7 +1847,7 @@ static void addPath(
|
||||||
EvalState & state,
|
EvalState & state,
|
||||||
const Pos & pos,
|
const Pos & pos,
|
||||||
const string & name,
|
const string & name,
|
||||||
const Path & path_,
|
Path path,
|
||||||
Value * filterFun,
|
Value * filterFun,
|
||||||
FileIngestionMethod method,
|
FileIngestionMethod method,
|
||||||
const std::optional<Hash> expectedHash,
|
const std::optional<Hash> expectedHash,
|
||||||
|
@ -1855,22 +1855,13 @@ static void addPath(
|
||||||
const PathSet & context)
|
const PathSet & context)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
// FIXME: handle CA derivation outputs (where path_ needs to
|
// FIXME: handle CA derivation outputs (where path needs to
|
||||||
// be rewritten to the actual output).
|
// be rewritten to the actual output).
|
||||||
state.realiseContext(context);
|
state.realiseContext(context);
|
||||||
} catch (InvalidPathError & e) {
|
|
||||||
throw EvalError({
|
|
||||||
.msg = hintfmt("cannot add path '%s', since path '%s' is not valid", path_, e.path),
|
|
||||||
.errPos = pos
|
|
||||||
});
|
|
||||||
} catch (Error & e) {
|
|
||||||
e.addTrace(pos, "while adding path '%s'", path_);
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto path = evalSettings.pureEval && expectedHash
|
path = evalSettings.pureEval && expectedHash
|
||||||
? path_
|
? path
|
||||||
: state.checkSourcePath(path_);
|
: state.checkSourcePath(path);
|
||||||
|
|
||||||
if (state.store->isInStore(path)) {
|
if (state.store->isInStore(path)) {
|
||||||
auto storePath = state.store->toStorePath(path).first;
|
auto storePath = state.store->toStorePath(path).first;
|
||||||
|
@ -1921,6 +1912,11 @@ static void addPath(
|
||||||
mkString(v, dstPath, {dstPath});
|
mkString(v, dstPath, {dstPath});
|
||||||
|
|
||||||
state.allowPath(v.string.s);
|
state.allowPath(v.string.s);
|
||||||
|
|
||||||
|
} catch (Error & e) {
|
||||||
|
e.addTrace(pos, "while adding path '%s'", path);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue