about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2017-10-23T17·34+0200
committerEelco Dolstra <edolstra@gmail.com>2017-10-23T18·50+0200
commitf32cdc4fab1bff919c3d074a95e32a9934eb7386 (patch)
treeaf13b2222601d16d596629faf0093298a8e461cc
parent38dcd0c4b8789f3ae5c9384e103123ec44f76b71 (diff)
Turn $NIX_REMOTE into a configuration option
-rw-r--r--src/libstore/globals.hh4
-rw-r--r--src/libstore/store-api.hh5
-rw-r--r--src/nix/command.cc5
-rw-r--r--src/nix/command.hh1
4 files changed, 8 insertions, 7 deletions
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 264e82a16e20..12d57b3e7647 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -2,6 +2,7 @@
 
 #include "types.hh"
 #include "config.hh"
+#include "util.hh"
 
 #include <map>
 #include <limits>
@@ -84,6 +85,9 @@ public:
     /* File name of the socket the daemon listens to.  */
     Path nixDaemonSocketFile;
 
+    Setting<std::string> storeUri{this, getEnv("NIX_REMOTE", "auto"), "store",
+        "The default Nix store to use."};
+
     Setting<bool> keepFailed{this, false, "keep-failed",
         "Whether to keep temporary directories of failed builds."};
 
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index 5f3d8c7b9529..d1e1b5d6f452 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -716,7 +716,7 @@ void removeTempRoots();
    You can pass parameters to the store implementation by appending
    ‘?key=value&key=value&...’ to the URI.
 */
-ref<Store> openStore(const std::string & uri = getEnv("NIX_REMOTE"),
+ref<Store> openStore(const std::string & uri = settings.storeUri.get(),
     const Store::Params & extraParams = Store::Params());
 
 
@@ -727,7 +727,8 @@ enum StoreType {
 };
 
 
-StoreType getStoreType(const std::string & uri = getEnv("NIX_REMOTE"), const std::string & stateDir = settings.nixStateDir);
+StoreType getStoreType(const std::string & uri = settings.storeUri.get(),
+    const std::string & stateDir = settings.nixStateDir);
 
 /* Return the default substituter stores, defined by the
    ‘substituters’ option and various legacy options like
diff --git a/src/nix/command.cc b/src/nix/command.cc
index 0f6bb294b38c..70d642605d88 100644
--- a/src/nix/command.cc
+++ b/src/nix/command.cc
@@ -78,9 +78,6 @@ bool MultiCommand::processArgs(const Strings & args, bool finish)
 
 StoreCommand::StoreCommand()
 {
-    storeUri = getEnv("NIX_REMOTE");
-
-    mkFlag(0, "store", "store-uri", "URI of the Nix store to use", &storeUri);
 }
 
 ref<Store> StoreCommand::getStore()
@@ -92,7 +89,7 @@ ref<Store> StoreCommand::getStore()
 
 ref<Store> StoreCommand::createStore()
 {
-    return openStore(storeUri);
+    return openStore();
 }
 
 void StoreCommand::run()
diff --git a/src/nix/command.hh b/src/nix/command.hh
index bf897f620db6..77ca8cfb64bf 100644
--- a/src/nix/command.hh
+++ b/src/nix/command.hh
@@ -33,7 +33,6 @@ class Store;
 /* A command that require a Nix store. */
 struct StoreCommand : virtual Command
 {
-    std::string storeUri;
     StoreCommand();
     void run() override;
     ref<Store> getStore();