1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-25 23:11:16 +02:00

libflake: add lock file path to invalid json error

Previously, when lock file contained invalid JSON nix reported a parser
error without specifying the file it came from.

This change adds flake.lock file path to the error message to avoid
confusion.
This commit is contained in:
Alexander Romanov 2025-04-06 22:52:46 +03:00
parent cf5e59911b
commit e3873aa1a0

View file

@ -108,8 +108,13 @@ LockFile::LockFile(
const fetchers::Settings & fetchSettings, const fetchers::Settings & fetchSettings,
std::string_view contents, std::string_view path) std::string_view contents, std::string_view path)
{ {
auto json = nlohmann::json::parse(contents); auto json = [=] {
try {
return nlohmann::json::parse(contents);
} catch (const nlohmann::json::parse_error & e) {
throw Error("Could not parse '%s': %s", path, e.what());
}
}();
auto version = json.value("version", 0); auto version = json.value("version", 0);
if (version < 5 || version > 7) if (version < 5 || version > 7)
throw Error("lock file '%s' has unsupported version %d", path, version); throw Error("lock file '%s' has unsupported version %d", path, version);