forked from lix-project/lix
Change error messages about 'invalid paths' to 'path does not exist'.
Fixes #270.
Change-Id: I07d2da41498cfdf324a03af40533044d58c97c7e
This commit is contained in:
parent
6c311a4afa
commit
89c782b0c0
|
@ -383,7 +383,8 @@ void prim_exec(EvalState & state, const PosIdx pos, Value * * args, Value & v)
|
||||||
try {
|
try {
|
||||||
auto _ = state.realiseContext(context); // FIXME: Handle CA derivations
|
auto _ = state.realiseContext(context); // FIXME: Handle CA derivations
|
||||||
} catch (InvalidPathError & e) {
|
} catch (InvalidPathError & e) {
|
||||||
state.error<EvalError>("cannot execute '%1%', since path '%2%' is not valid", program, e.path).atPos(pos).debugThrow();
|
e.addTrace(state.positions[pos], "while realising the context for builtins.exec");
|
||||||
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto output = runProgram(program, true, commandArgs);
|
auto output = runProgram(program, true, commandArgs);
|
||||||
|
|
|
@ -170,7 +170,7 @@ ref<const ValidPathInfo> BinaryCacheStore::addToStoreCommon(
|
||||||
if (ref != info.path)
|
if (ref != info.path)
|
||||||
queryPathInfo(ref);
|
queryPathInfo(ref);
|
||||||
} catch (InvalidPath &) {
|
} catch (InvalidPath &) {
|
||||||
throw Error("cannot add '%s' to the binary cache because the reference '%s' is not valid",
|
throw Error("cannot add '%s' to the binary cache because the reference '%s' does not exist",
|
||||||
printStorePath(info.path), printStorePath(ref));
|
printStorePath(info.path), printStorePath(ref));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ struct LocalStoreAccessor : public FSAccessor
|
||||||
{
|
{
|
||||||
auto storePath = store->toStorePath(path).first;
|
auto storePath = store->toStorePath(path).first;
|
||||||
if (requireValidPath && !store->isValidPath(storePath))
|
if (requireValidPath && !store->isValidPath(storePath))
|
||||||
throw InvalidPath("path '%1%' is not a valid store path", store->printStorePath(storePath));
|
throw InvalidPath("path '%1%' does not exist in the store", store->printStorePath(storePath));
|
||||||
return store->getRealStoreDir() + std::string(path, store->storeDir.size());
|
return store->getRealStoreDir() + std::string(path, store->storeDir.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ ref<FSAccessor> LocalFSStore::getFSAccessor()
|
||||||
void LocalFSStore::narFromPath(const StorePath & path, Sink & sink)
|
void LocalFSStore::narFromPath(const StorePath & path, Sink & sink)
|
||||||
{
|
{
|
||||||
if (!isValidPath(path))
|
if (!isValidPath(path))
|
||||||
throw Error("path '%s' is not valid", printStorePath(path));
|
throw Error("path '%s' does not exist in store", printStorePath(path));
|
||||||
dumpPath(getRealStoreDir() + std::string(printStorePath(path), storeDir.size()), sink);
|
dumpPath(getRealStoreDir() + std::string(printStorePath(path), storeDir.size()), sink);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -907,7 +907,7 @@ std::shared_ptr<const ValidPathInfo> LocalStore::queryPathInfoInternal(State & s
|
||||||
try {
|
try {
|
||||||
narHash = Hash::parseAnyPrefixed(useQueryPathInfo.getStr(1));
|
narHash = Hash::parseAnyPrefixed(useQueryPathInfo.getStr(1));
|
||||||
} catch (BadHash & e) {
|
} catch (BadHash & e) {
|
||||||
throw Error("invalid-path entry for '%s': %s", printStorePath(path), e.what());
|
throw BadStorePath("bad hash in store path '%s': %s", printStorePath(path), e.what());
|
||||||
}
|
}
|
||||||
|
|
||||||
auto info = std::make_shared<ValidPathInfo>(path, narHash);
|
auto info = std::make_shared<ValidPathInfo>(path, narHash);
|
||||||
|
@ -957,8 +957,8 @@ void LocalStore::updatePathInfo(State & state, const ValidPathInfo & info)
|
||||||
uint64_t LocalStore::queryValidPathId(State & state, const StorePath & path)
|
uint64_t LocalStore::queryValidPathId(State & state, const StorePath & path)
|
||||||
{
|
{
|
||||||
auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
|
auto use(state.stmts->QueryPathInfo.use()(printStorePath(path)));
|
||||||
if (!use.next())
|
if (!use.next()) // TODO: I guess if SQLITE got corrupted..?
|
||||||
throw InvalidPath("path '%s' is not valid", printStorePath(path));
|
throw InvalidPath("path '%s' does not exist", printStorePath(path));
|
||||||
return use.getInt(0);
|
return use.getInt(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ std::pair<ref<FSAccessor>, Path> RemoteFSAccessor::fetch(const Path & path_, boo
|
||||||
auto [storePath, restPath] = store->toStorePath(path);
|
auto [storePath, restPath] = store->toStorePath(path);
|
||||||
|
|
||||||
if (requireValidPath && !store->isValidPath(storePath))
|
if (requireValidPath && !store->isValidPath(storePath))
|
||||||
throw InvalidPath("path '%1%' is not a valid store path", store->printStorePath(storePath));
|
throw InvalidPath("path '%1%' does not exist in remote store", store->printStorePath(storePath));
|
||||||
|
|
||||||
auto i = nars.find(std::string(storePath.hashPart()));
|
auto i = nars.find(std::string(storePath.hashPart()));
|
||||||
if (i != nars.end()) return {i->second, restPath};
|
if (i != nars.end()) return {i->second, restPath};
|
||||||
|
|
Loading…
Reference in a new issue