nix/installables.cc: Use getCommandBaseDir() where possible

These usages of the working directory are perhaps unlikely to
interact with shebangs, but the code is more consistent this way,
and we're less likely to miss usages that do interact.
This commit is contained in:
Robert Hensing 2023-05-12 19:57:36 +02:00 committed by tomberek
parent 466271568b
commit 51bb69535b

View file

@ -88,7 +88,7 @@ MixFlakeOptions::MixFlakeOptions()
lockFlags.writeLockFile = false; lockFlags.writeLockFile = false;
lockFlags.inputOverrides.insert_or_assign( lockFlags.inputOverrides.insert_or_assign(
flake::parseInputPath(inputPath), flake::parseInputPath(inputPath),
parseFlakeRef(flakeRef, absPath("."), true)); parseFlakeRef(flakeRef, absPath(getCommandBaseDir()), true));
}}, }},
.completer = {[&](AddCompletions & completions, size_t n, std::string_view prefix) { .completer = {[&](AddCompletions & completions, size_t n, std::string_view prefix) {
if (n == 0) { if (n == 0) {
@ -130,7 +130,7 @@ MixFlakeOptions::MixFlakeOptions()
auto evalState = getEvalState(); auto evalState = getEvalState();
auto flake = flake::lockFlake( auto flake = flake::lockFlake(
*evalState, *evalState,
parseFlakeRef(flakeRef, absPath(".")), parseFlakeRef(flakeRef, absPath(getCommandBaseDir())),
{ .writeLockFile = false }); { .writeLockFile = false });
for (auto & [inputName, input] : flake.lockFile.root->inputs) { for (auto & [inputName, input] : flake.lockFile.root->inputs) {
auto input2 = flake.lockFile.findInput({inputName}); // resolve 'follows' nodes auto input2 = flake.lockFile.findInput({inputName}); // resolve 'follows' nodes
@ -294,7 +294,7 @@ void completeFlakeRefWithFragment(
prefixRoot = "."; prefixRoot = ".";
} }
auto flakeRefS = std::string(prefix.substr(0, hash)); auto flakeRefS = std::string(prefix.substr(0, hash));
auto flakeRef = parseFlakeRef(expandTilde(flakeRefS), absPath(".")); auto flakeRef = parseFlakeRef(expandTilde(flakeRefS), absPath(getCommandBaseDir()));
auto evalCache = openEvalCache(*evalState, auto evalCache = openEvalCache(*evalState,
std::make_shared<flake::LockedFlake>(lockFlake(*evalState, flakeRef, lockFlags))); std::make_shared<flake::LockedFlake>(lockFlake(*evalState, flakeRef, lockFlags)));
@ -482,7 +482,7 @@ Installables SourceExprCommand::parseInstallables(
} }
try { try {
auto [flakeRef, fragment] = parseFlakeRefWithFragment(std::string { prefix }, absPath(".")); auto [flakeRef, fragment] = parseFlakeRefWithFragment(std::string { prefix }, absPath(getCommandBaseDir()));
result.push_back(make_ref<InstallableFlake>( result.push_back(make_ref<InstallableFlake>(
this, this,
getEvalState(), getEvalState(),
@ -756,7 +756,7 @@ std::vector<FlakeRef> RawInstallablesCommand::getFlakeRefsForCompletion()
for (auto i : rawInstallables) for (auto i : rawInstallables)
res.push_back(parseFlakeRefWithFragment( res.push_back(parseFlakeRefWithFragment(
expandTilde(i), expandTilde(i),
absPath(".")).first); absPath(getCommandBaseDir())).first);
return res; return res;
} }
@ -778,7 +778,7 @@ std::vector<FlakeRef> InstallableCommand::getFlakeRefsForCompletion()
return { return {
parseFlakeRefWithFragment( parseFlakeRefWithFragment(
expandTilde(_installable), expandTilde(_installable),
absPath(".")).first absPath(getCommandBaseDir())).first
}; };
} }