fix(nix/eval.cc): move call to fs::create_directory out of assert

If the call is inside the assertion, then in non-assert builds
the call would be stripped out. This is highly unexpected.
This commit is contained in:
Sergei Zimmerman 2024-10-19 00:40:14 +03:00
parent 694c378d14
commit 8277b50b6f

View File

@ -89,8 +89,9 @@ struct CmdEval : MixJSON, InstallableValueCommand, MixReadOnlyOption
// FIXME: disallow strings with contexts? // FIXME: disallow strings with contexts?
writeFile(path.string(), v.string_view()); writeFile(path.string(), v.string_view());
else if (v.type() == nAttrs) { else if (v.type() == nAttrs) {
[[maybe_unused]] bool directoryCreated = fs::create_directory(path);
// Directory should not already exist // Directory should not already exist
assert(fs::create_directory(path.string())); assert(directoryCreated);
for (auto & attr : *v.attrs()) { for (auto & attr : *v.attrs()) {
std::string_view name = state->symbols[attr.name]; std::string_view name = state->symbols[attr.name];
try { try {