diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-06-02 13:33:49 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-06-02 16:02:48 +0200 |
commit | 812c0dfbe24c8fe93992f77abbf1e5a975ea42f4 (patch) | |
tree | d69bcc87ce446f270f6b01f7069655223d52a626 /src/libstore/store-api.cc | |
parent | f2682e6e18a76ecbfb8a12c17e3a0ca15c084197 (diff) |
Allow setting the state directory as a store parameter
E.g. "local?store=/tmp/store&state=/tmp/var".
Diffstat (limited to 'src/libstore/store-api.cc')
-rw-r--r-- | src/libstore/store-api.cc | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index cea4b4b6e..c6616a43d 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -230,7 +230,7 @@ Path Store::computeStorePathForText(const string & name, const string & s, Store::Store(const Params & params) - : storeDir(settings.nixStore) + : storeDir(get(params, "store", settings.nixStore)) { } @@ -508,7 +508,8 @@ static RegisterStoreImplementation regStore([]( else return 0; if (mode == mAuto) { - if (LocalStore::haveWriteAccess()) + auto stateDir = get(params, "state", settings.nixStateDir); + if (access(stateDir.c_str(), R_OK | W_OK) == 0) mode = mLocal; else if (pathExists(settings.nixDaemonSocketFile)) mode = mDaemon; |