diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-02-24T13·48+0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-02-24T13·48+0100 |
commit | 263187a2ec0a2ddd16cfd8c54c55e3455c9cd987 (patch) | |
tree | 1b39bcf8979f35fa9fb4b4dde6440219c9451b82 /src/libstore/store-api.cc | |
parent | b584a0e7dea6fd903f8a285ee3a997ba535b44a7 (diff) |
Move BinaryCacheStore / LocalBinaryCacheStore from Hydra
So you can now do: $ NIX_REMOTE=file:///tmp/binary-cache nix-store -qR /nix/store/...
Diffstat (limited to 'src/libstore/store-api.cc')
-rw-r--r-- | src/libstore/store-api.cc | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index 82872cc335e3..f9c8767709e7 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -313,18 +313,24 @@ void Store::exportPaths(const Paths & paths, #include "local-store.hh" -#include "serialise.hh" #include "remote-store.hh" +#include "local-binary-cache-store.hh" namespace nix { -ref<Store> openStore(bool reserveSpace) +ref<Store> openStoreAt(const std::string & uri, bool reserveSpace) { + if (std::string(uri, 0, 7) == "file://") { + return make_ref<LocalBinaryCacheStore>(std::shared_ptr<Store>(0), + "", "", // FIXME: allow the signing key to be set + std::string(uri, 7)); + } + enum { mDaemon, mLocal, mAuto } mode; - mode = getEnv("NIX_REMOTE") == "daemon" ? mDaemon : mAuto; + mode = uri == "daemon" ? mDaemon : mAuto; if (mode == mAuto) { if (LocalStore::haveWriteAccess()) @@ -341,4 +347,10 @@ ref<Store> openStore(bool reserveSpace) } +ref<Store> openStore(bool reserveSpace) +{ + return openStoreAt(getEnv("NIX_REMOTE"), reserveSpace); +} + + } |