nix flake show: don't evaluate derivations for foreign systems by default
This commit is contained in:
parent
4823067247
commit
02bff90e7b
|
@ -957,6 +957,7 @@ struct CmdFlakeArchive : FlakeCommand, MixJSON, MixDryRun
|
|||
struct CmdFlakeShow : FlakeCommand, MixJSON
|
||||
{
|
||||
bool showLegacy = false;
|
||||
bool showForeign = false;
|
||||
|
||||
CmdFlakeShow()
|
||||
{
|
||||
|
@ -965,6 +966,11 @@ struct CmdFlakeShow : FlakeCommand, MixJSON
|
|||
.description = "Show the contents of the `legacyPackages` output.",
|
||||
.handler = {&showLegacy, true}
|
||||
});
|
||||
addFlag({
|
||||
.longName = "foreign",
|
||||
.description = "Show the contents of outputs for foreign systems.",
|
||||
.handler = {&showForeign, true}
|
||||
});
|
||||
}
|
||||
|
||||
std::string description() override
|
||||
|
@ -985,6 +991,7 @@ struct CmdFlakeShow : FlakeCommand, MixJSON
|
|||
|
||||
auto state = getEvalState();
|
||||
auto flake = std::make_shared<LockedFlake>(lockFlake());
|
||||
auto localSystem = std::string(settings.thisSystem.get());
|
||||
|
||||
std::function<nlohmann::json(
|
||||
eval_cache::AttrCursor & visitor,
|
||||
|
@ -1075,11 +1082,19 @@ struct CmdFlakeShow : FlakeCommand, MixJSON
|
|||
|| (attrPath.size() == 3 && (attrPathS[0] == "checks" || attrPathS[0] == "packages" || attrPathS[0] == "devShells"))
|
||||
)
|
||||
{
|
||||
if (!showForeign && std::string(attrPathS[1]) != localSystem) {
|
||||
if (!json)
|
||||
logger->cout(fmt("%s " ANSI_WARNING "omitted" ANSI_NORMAL " (use '--foreign' to show)", headerPrefix));
|
||||
else {
|
||||
logger->warn(fmt("%s omitted (use '--foreign' to show)", concatStringsSep(".", attrPathS)));
|
||||
}
|
||||
} else {
|
||||
if (visitor.isDerivation())
|
||||
showDerivation();
|
||||
else
|
||||
throw Error("expected a derivation");
|
||||
}
|
||||
}
|
||||
|
||||
else if (attrPath.size() > 0 && attrPathS[0] == "hydraJobs") {
|
||||
if (visitor.isDerivation())
|
||||
|
|
Loading…
Reference in a new issue