diff options
author | Robert Hensing <robert@roberthensing.nl> | 2023-04-17 11:41:50 +0200 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2023-04-17 11:41:50 +0200 |
commit | cb2615cf4735cf28a6e538544c9abbf40cdd24a9 (patch) | |
tree | 55eb0a30ff9bba54e568facec1ff0cdfeffbba73 /src/nix/main.cc | |
parent | a9759407e55fb02c6e306fdd9fcedd821e465024 (diff) | |
parent | 9af9c260fc0aff9e20a1c2e965249a20394ca22a (diff) |
Merge remote-tracking branch 'upstream/master' into source-path
Diffstat (limited to 'src/nix/main.cc')
-rw-r--r-- | src/nix/main.cc | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nix/main.cc b/src/nix/main.cc index df0a25214..ce0bed2a3 100644 --- a/src/nix/main.cc +++ b/src/nix/main.cc @@ -83,6 +83,7 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs .description = "Print full build logs on standard error.", .category = loggingCategory, .handler = {[&]() { logger->setPrintBuildLogs(true); }}, + .experimentalFeature = Xp::NixCommand, }); addFlag({ @@ -98,6 +99,7 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs .description = "Disable substituters and consider all previously downloaded files up-to-date.", .category = miscCategory, .handler = {[&]() { useNet = false; }}, + .experimentalFeature = Xp::NixCommand, }); addFlag({ @@ -105,6 +107,7 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs .description = "Consider all previously downloaded files out-of-date.", .category = miscCategory, .handler = {[&]() { refresh = true; }}, + .experimentalFeature = Xp::NixCommand, }); } @@ -124,6 +127,7 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs {"optimise-store", {"store", "optimise"}}, {"ping-store", {"store", "ping"}}, {"sign-paths", {"store", "sign"}}, + {"show-derivation", {"derivation", "show"}}, {"to-base16", {"hash", "to-base16"}}, {"to-base32", {"hash", "to-base32"}}, {"to-base64", {"hash", "to-base64"}}, @@ -371,6 +375,11 @@ void mainWrapped(int argc, char * * argv) return; } + if (argc == 2 && std::string(argv[1]) == "__dump-xp-features") { + logger->cout(documentExperimentalFeatures().dump()); + return; + } + Finally printCompletions([&]() { if (completions) { @@ -420,10 +429,8 @@ void mainWrapped(int argc, char * * argv) if (!args.command) throw UsageError("no subcommand specified"); - if (args.command->first != "repl" - && args.command->first != "doctor" - && args.command->first != "upgrade-nix") - experimentalFeatureSettings.require(Xp::NixCommand); + experimentalFeatureSettings.require( + args.command->second->experimentalFeature()); if (args.useNet && !haveInternet()) { warn("you don't have Internet access; disabling some network-dependent features"); |