aboutsummaryrefslogtreecommitdiff
path: root/src/nix/main.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/nix/main.cc')
-rw-r--r--src/nix/main.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/nix/main.cc b/src/nix/main.cc
index 41d44f431..c5ca089ee 100644
--- a/src/nix/main.cc
+++ b/src/nix/main.cc
@@ -55,6 +55,7 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
{
bool printBuildLogs = false;
bool useNet = true;
+ bool refresh = false;
NixArgs() : MultiCommand(*RegisterCommand::commands), MixCommonArgs("nix")
{
@@ -92,6 +93,11 @@ struct NixArgs : virtual MultiCommand, virtual MixCommonArgs
.longName("no-net")
.description("disable substituters and consider all previously downloaded files up-to-date")
.handler([&]() { useNet = false; });
+
+ mkFlag()
+ .longName("refresh")
+ .description("consider all previously downloaded files out-of-date")
+ .handler([&]() { refresh = true; });
}
void printFlags(std::ostream & out) override
@@ -144,6 +150,7 @@ void mainWrapped(int argc, char * * argv)
verbosity = lvlWarn;
settings.verboseBuild = false;
+ evalSettings.pureEval = true;
NixArgs args;
@@ -176,6 +183,9 @@ void mainWrapped(int argc, char * * argv)
downloadSettings.connectTimeout = 1;
}
+ if (args.refresh)
+ settings.tarballTtl = 0;
+
args.command->prepare();
args.command->run();
}