diff --git a/src/libcmd/installables.cc b/src/libcmd/installables.cc index 95abc46cf..78751131c 100644 --- a/src/libcmd/installables.cc +++ b/src/libcmd/installables.cc @@ -552,7 +552,7 @@ Bindings * SourceExprCommand::getOverrideArgs(EvalState & state, ref stor Value * v = state.allocValue(); if (i.second[0] == 'E') { // is a raw expression, parse - state.mkThunk_(*v, state.parseExprFromString(std::string(i.second, 1), state.rootPath(CanonPath::fromCwd()))); + state.mkThunk_(*v, state.parseExprFromString(std::string(i.second, 1), state.rootPath("."))); } else if (i.second[0] == 'F') { // is a flakeref auto iV = InstallableValue::require(parseInstallable(store, std::string(i.second, 1), false, false)); @@ -598,13 +598,12 @@ Installables SourceExprCommand::parseInstallables( auto e = state->parseStdin(); state->eval(e, *vFile); } - else if (file) + else if (file) { auto dir = absPath(getCommandBaseDir()); state->evalFile(lookupFileArg(*state, *file, &dir), *vFile); - else if (callPackageFile) { - auto dir = absPath(getCommandBaseDir()); + } else if (callPackageFile) { auto fileLoc = absPath(*callPackageFile); - auto e = state->parseExprFromString(fmt("(import {}).callPackage %s {}", &fileLoc), state->rootPath(&dir)); + auto e = state->parseExprFromString(fmt("(import {}).callPackage %s {}", fileLoc), state->rootPath(".")); state->eval(e, *vFile); } else { Path dir = absPath(getCommandBaseDir()); diff --git a/src/libcmd/modify-installables.cc b/src/libcmd/modify-installables.cc index 722838d7a..1090bd0a6 100644 --- a/src/libcmd/modify-installables.cc +++ b/src/libcmd/modify-installables.cc @@ -41,7 +41,7 @@ ref SourceExprCommand::modifyInstallable ( auto overrideSet = getOverrideArgs(*state, store); if (applyToInstallable) { - state->eval(state->parseExprFromString(*applyToInstallable, state->rootPath(CanonPath::fromCwd())), *vApply); + state->eval(state->parseExprFromString(*applyToInstallable, state->rootPath(".")), *vApply); state->callFunction(*vApply, *v, *vRes, noPos); } else if (overrideSet->size() > 0) { Value * overrideValues = state->allocValue(); @@ -56,7 +56,7 @@ ref SourceExprCommand::modifyInstallable ( auto vOverrideFunctor = vOverrideFunctorAttr->value; state->callFunction(*vOverrideFunctor, *overrideValues, *vRes, noPos); } else if (installableOverrideAttrs) { - state->eval(state->parseExprFromString(fmt("old: with old; %s",*installableOverrideAttrs), state->rootPath(CanonPath::fromCwd())), *vApply); + state->eval(state->parseExprFromString(fmt("old: with old; %s",*installableOverrideAttrs), state->rootPath(".")), *vApply); auto vOverrideFunctorAttr = v->attrs->get(state->symbols.create("overrideAttrs")); if (!vOverrideFunctorAttr) { throw Error("%s is not overrideAttrs-capable", installableName); @@ -64,7 +64,7 @@ ref SourceExprCommand::modifyInstallable ( auto vOverrideFunctor = vOverrideFunctorAttr->value; state->callFunction(*vOverrideFunctor, *vApply, *vRes, noPos); } else if (installableWithPackages) { - state->eval(state->parseExprFromString(fmt("ps: with ps; %s",*installableWithPackages), state->rootPath(CanonPath::fromCwd())), *vApply); + state->eval(state->parseExprFromString(fmt("ps: with ps; %s",*installableWithPackages), state->rootPath(".")), *vApply); auto vOverrideFunctorAttr = v->attrs->get(state->symbols.create("withPackages")); if (!vOverrideFunctorAttr) { throw Error("%s cannot be extended with additional packages", installableName); diff --git a/src/nix/home.cc b/src/nix/home.cc index 35feb36e0..2ea1c2b3a 100644 --- a/src/nix/home.cc +++ b/src/nix/home.cc @@ -93,7 +93,7 @@ struct CmdHomeApply : HomeActivationCommand struct CmdHome : NixMultiCommand { CmdHome() - : MultiCommand({ + : NixMultiCommand("home", { {"build", []() { return make_ref(); }}, {"apply", []() { return make_ref(); }}, }) diff --git a/src/nix/system.cc b/src/nix/system.cc index 000fa2dea..ddd77f1a2 100644 --- a/src/nix/system.cc +++ b/src/nix/system.cc @@ -170,7 +170,7 @@ struct CmdSystemBoot : SystemActivationCommand struct CmdSystem : NixMultiCommand { CmdSystem() - : MultiCommand({ + : NixMultiCommand("system", { {"build", []() { return make_ref(); }}, {"activate", []() { return make_ref(); }}, {"apply", []() { return make_ref(); }},