about summary refs log tree commit diff
path: root/src/libmain
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-06-17T06·43+0200
committerEelco Dolstra <edolstra@gmail.com>2019-06-24T20·07+0200
commit7b9c68766d513260d5262d5782b46384834cdb33 (patch)
tree85bdcc1602895a1fd72025ac3c36114f84af79d9 /src/libmain
parent78fa47a7f08a4cb6ee7061bf0bd86a40e1d6dc91 (diff)
Add '--no-net' convenience flag
This flag

* Disables substituters.

* Sets the tarball-ttl to infinity (ensuring e.g. that the flake
  registry and any downloaded flakes are considered current).

* Disables retrying downloads and sets the connection timeout to the
  minimum. (So it doesn't completely disable downloads at the moment.)

(cherry picked from commit 8ea842260b4fd93315d35c5ba94b1ff99ab391d8)
Diffstat (limited to 'src/libmain')
-rw-r--r--src/libmain/common-args.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/libmain/common-args.cc b/src/libmain/common-args.cc
index 9e1d7cee60e6..0486932b20e7 100644
--- a/src/libmain/common-args.cc
+++ b/src/libmain/common-args.cc
@@ -1,5 +1,6 @@
 #include "common-args.hh"
 #include "globals.hh"
+#include "download.hh"
 
 namespace nix {
 
@@ -44,6 +45,16 @@ MixCommonArgs::MixCommonArgs(const string & programName)
             settings.set("max-jobs", s);
         });
 
+    mkFlag()
+        .longName("no-net")
+        .description("disable substituters and consider all previously downloaded files up-to-date")
+        .handler([]() {
+            settings.useSubstitutes = false;
+            settings.tarballTtl = std::numeric_limits<unsigned int>::max();
+            downloadSettings.tries = 0;
+            downloadSettings.connectTimeout = 1;
+        });
+
     std::string cat = "config";
     globalConfig.convertToArgs(*this, cat);