mirror of
https://github.com/NixOS/nix.git
synced 2025-11-09 20:16:03 +01:00
nix develop: Use store->getFSAccessor()
This commit is contained in:
parent
eff5043571
commit
332aaa6b72
1 changed files with 8 additions and 9 deletions
|
|
@ -299,12 +299,13 @@ static StorePath getDerivationEnvironment(ref<Store> store, ref<Store> evalStore
|
||||||
bmNormal,
|
bmNormal,
|
||||||
evalStore);
|
evalStore);
|
||||||
|
|
||||||
|
// `get-env.sh` will write its JSON output to an arbitrary output
|
||||||
|
// path, so return the first non-empty output path.
|
||||||
for (auto & [_0, optPath] : evalStore->queryPartialDerivationOutputMap(shellDrvPath)) {
|
for (auto & [_0, optPath] : evalStore->queryPartialDerivationOutputMap(shellDrvPath)) {
|
||||||
assert(optPath);
|
assert(optPath);
|
||||||
auto & outPath = *optPath;
|
auto & outPath = *optPath;
|
||||||
assert(store->isValidPath(outPath));
|
auto st = store->getFSAccessor()->lstat(CanonPath(outPath.to_string()));
|
||||||
auto outPathS = store->toRealPath(outPath);
|
if (st.fileSize.value_or(0))
|
||||||
if (lstat(outPathS).st_size)
|
|
||||||
return outPath;
|
return outPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -494,17 +495,15 @@ struct Common : InstallableCommand, MixProfile
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::pair<BuildEnvironment, std::string> getBuildEnvironment(ref<Store> store, ref<Installable> installable)
|
std::pair<BuildEnvironment, StorePath> getBuildEnvironment(ref<Store> store, ref<Installable> installable)
|
||||||
{
|
{
|
||||||
auto shellOutPath = getShellOutPath(store, installable);
|
auto shellOutPath = getShellOutPath(store, installable);
|
||||||
|
|
||||||
auto strPath = store->printStorePath(shellOutPath);
|
|
||||||
|
|
||||||
updateProfile(shellOutPath);
|
updateProfile(shellOutPath);
|
||||||
|
|
||||||
debug("reading environment file '%s'", strPath);
|
debug("reading environment file '%s'", store->printStorePath(shellOutPath));
|
||||||
|
|
||||||
return {BuildEnvironment::parseJSON(readFile(store->toRealPath(shellOutPath))), strPath};
|
return {BuildEnvironment::parseJSON(store->getFSAccessor()->readFile(shellOutPath.to_string())), shellOutPath};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -631,7 +630,7 @@ struct CmdDevelop : Common, MixEnvironment
|
||||||
|
|
||||||
setEnviron();
|
setEnviron();
|
||||||
// prevent garbage collection until shell exits
|
// prevent garbage collection until shell exits
|
||||||
setEnv("NIX_GCROOT", gcroot.c_str());
|
setEnv("NIX_GCROOT", store->printStorePath(gcroot).c_str());
|
||||||
|
|
||||||
Path shell = "bash";
|
Path shell = "bash";
|
||||||
bool foundInteractive = false;
|
bool foundInteractive = false;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue