* Skeleton of remote store implementation.

This commit is contained in:
Eelco Dolstra 2006-11-30 18:35:36 +00:00
parent 6ecb840fd1
commit 9cf1948993
4 changed files with 14 additions and 6 deletions

View file

@ -1,12 +1,12 @@
pkglib_LTLIBRARIES = libstore.la
libstore_la_SOURCES = \
store-api.cc local-store.cc derivations.cc build.cc misc.cc globals.cc \
db.cc references.cc pathlocks.cc gc.cc
store-api.cc local-store.cc remote-store.cc derivations.cc build.cc misc.cc \
globals.cc db.cc references.cc pathlocks.cc gc.cc
pkginclude_HEADERS = \
store-api.hh local-store.cc derivations.hh misc.hh globals.hh \
db.hh references.hh pathlocks.hh gc.hh
store-api.hh local-store.cc remote-store.cc derivations.hh misc.hh \
globals.hh db.hh references.hh pathlocks.hh gc.hh
libstore_la_LIBADD = ../libutil/libutil.la ../boost/format/libformat.la

View file

@ -16,6 +16,7 @@
#include <unistd.h>
#include <utime.h>
namespace nix {

View file

@ -1,5 +1,6 @@
#include "store-api.hh"
#include "globals.hh"
#include "util.hh"
namespace nix {
@ -90,6 +91,7 @@ Path makeFixedOutputPath(bool recursive,
#include "local-store.hh"
#include "remote-store.hh"
namespace nix {
@ -100,7 +102,12 @@ boost::shared_ptr<StoreAPI> store;
boost::shared_ptr<StoreAPI> openStore(bool reserveSpace)
{
return boost::shared_ptr<StoreAPI>(new LocalStore(reserveSpace));
string mode = getEnv("NIX_REMOTE");
if (mode == "")
return boost::shared_ptr<StoreAPI>(new LocalStore(reserveSpace));
else if (mode == "slave")
return boost::shared_ptr<StoreAPI>(new RemoteStore());
else throw Error(format("invalid setting for NIX_REMOTE, `%1%'") % mode);
}

View file

@ -85,7 +85,7 @@ Path createGeneration(Path profile, Path outPath)
/* Create the new generation. Note that addPermRoot() blocks if
the garbage collector is running to prevent the stuff we've
build from moving from the temporary roots (which the GC knows)
built from moving from the temporary roots (which the GC knows)
to the permanent roots (of which the GC would have a stale
view). If we didn't do it this way, the GC might remove the
user environment etc. we've just built. */