forked from lix-project/lix
Split out local-fs-store.hh
This matches the already-existing `local-fs-store.cc`.
This commit is contained in:
parent
e845d19ae3
commit
6cc1541782
16 changed files with 62 additions and 41 deletions
|
@ -3,6 +3,7 @@
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "globals.hh"
|
#include "globals.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
#include "globals.hh"
|
#include "globals.hh"
|
||||||
#include "local-store.hh"
|
#include "local-store.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "finally.hh"
|
#include "finally.hh"
|
||||||
|
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#include "archive.hh"
|
#include "archive.hh"
|
||||||
#include "fs-accessor.hh"
|
#include "fs-accessor.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "globals.hh"
|
#include "globals.hh"
|
||||||
#include "compression.hh"
|
#include "compression.hh"
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
|
|
48
src/libstore/local-fs-store.hh
Normal file
48
src/libstore/local-fs-store.hh
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "store-api.hh"
|
||||||
|
|
||||||
|
namespace nix {
|
||||||
|
|
||||||
|
struct LocalFSStoreConfig : virtual StoreConfig
|
||||||
|
{
|
||||||
|
using StoreConfig::StoreConfig;
|
||||||
|
// FIXME: the (StoreConfig*) cast works around a bug in gcc that causes
|
||||||
|
// it to omit the call to the Setting constructor. Clang works fine
|
||||||
|
// either way.
|
||||||
|
const PathSetting rootDir{(StoreConfig*) this, true, "",
|
||||||
|
"root", "directory prefixed to all other paths"};
|
||||||
|
const PathSetting stateDir{(StoreConfig*) this, false,
|
||||||
|
rootDir != "" ? rootDir + "/nix/var/nix" : settings.nixStateDir,
|
||||||
|
"state", "directory where Nix will store state"};
|
||||||
|
const PathSetting logDir{(StoreConfig*) this, false,
|
||||||
|
rootDir != "" ? rootDir + "/nix/var/log/nix" : settings.nixLogDir,
|
||||||
|
"log", "directory where Nix will store state"};
|
||||||
|
};
|
||||||
|
|
||||||
|
class LocalFSStore : public virtual Store, public virtual LocalFSStoreConfig
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
|
||||||
|
const static string drvsLogDir;
|
||||||
|
|
||||||
|
LocalFSStore(const Params & params);
|
||||||
|
|
||||||
|
void narFromPath(const StorePath & path, Sink & sink) override;
|
||||||
|
ref<FSAccessor> getFSAccessor() override;
|
||||||
|
|
||||||
|
/* Register a permanent GC root. */
|
||||||
|
Path addPermRoot(const StorePath & storePath, const Path & gcRoot);
|
||||||
|
|
||||||
|
virtual Path getRealStoreDir() { return storeDir; }
|
||||||
|
|
||||||
|
Path toRealPath(const Path & storePath) override
|
||||||
|
{
|
||||||
|
assert(isInStore(storePath));
|
||||||
|
return getRealStoreDir() + "/" + std::string(storePath, storeDir.size() + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::shared_ptr<std::string> getBuildLog(const StorePath & path) override;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
#include "pathlocks.hh"
|
#include "pathlocks.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "sync.hh"
|
#include "sync.hh"
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "profiles.hh"
|
#include "profiles.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
|
|
||||||
|
|
||||||
namespace nix {
|
namespace nix {
|
||||||
|
|
|
@ -715,47 +715,6 @@ protected:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct LocalFSStoreConfig : virtual StoreConfig
|
|
||||||
{
|
|
||||||
using StoreConfig::StoreConfig;
|
|
||||||
// FIXME: the (StoreConfig*) cast works around a bug in gcc that causes
|
|
||||||
// it to omit the call to the Setting constructor. Clang works fine
|
|
||||||
// either way.
|
|
||||||
const PathSetting rootDir{(StoreConfig*) this, true, "",
|
|
||||||
"root", "directory prefixed to all other paths"};
|
|
||||||
const PathSetting stateDir{(StoreConfig*) this, false,
|
|
||||||
rootDir != "" ? rootDir + "/nix/var/nix" : settings.nixStateDir,
|
|
||||||
"state", "directory where Nix will store state"};
|
|
||||||
const PathSetting logDir{(StoreConfig*) this, false,
|
|
||||||
rootDir != "" ? rootDir + "/nix/var/log/nix" : settings.nixLogDir,
|
|
||||||
"log", "directory where Nix will store state"};
|
|
||||||
};
|
|
||||||
|
|
||||||
class LocalFSStore : public virtual Store, public virtual LocalFSStoreConfig
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
const static string drvsLogDir;
|
|
||||||
|
|
||||||
LocalFSStore(const Params & params);
|
|
||||||
|
|
||||||
void narFromPath(const StorePath & path, Sink & sink) override;
|
|
||||||
ref<FSAccessor> getFSAccessor() override;
|
|
||||||
|
|
||||||
/* Register a permanent GC root. */
|
|
||||||
Path addPermRoot(const StorePath & storePath, const Path & gcRoot);
|
|
||||||
|
|
||||||
virtual Path getRealStoreDir() { return storeDir; }
|
|
||||||
|
|
||||||
Path toRealPath(const Path & storePath) override
|
|
||||||
{
|
|
||||||
assert(isInStore(storePath));
|
|
||||||
return getRealStoreDir() + "/" + std::string(storePath, storeDir.size() + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::shared_ptr<std::string> getBuildLog(const StorePath & path) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/* Copy a path from one store to another. */
|
/* Copy a path from one store to another. */
|
||||||
void copyStorePath(ref<Store> srcStore, ref<Store> dstStore,
|
void copyStorePath(ref<Store> srcStore, ref<Store> dstStore,
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "globals.hh"
|
#include "globals.hh"
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
#include "affinity.hh"
|
#include "affinity.hh"
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "profiles.hh"
|
#include "profiles.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "user-env.hh"
|
#include "user-env.hh"
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "json.hh"
|
#include "json.hh"
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "globals.hh"
|
#include "globals.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "eval.hh"
|
#include "eval.hh"
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#include "value-to-json.hh"
|
#include "value-to-json.hh"
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "common-eval-args.hh"
|
#include "common-eval-args.hh"
|
||||||
#include "../nix/legacy.hh"
|
#include "../nix/legacy.hh"
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
#include "common-args.hh"
|
#include "common-args.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include "common-args.hh"
|
#include "common-args.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "fs-accessor.hh"
|
#include "fs-accessor.hh"
|
||||||
|
|
||||||
using namespace nix;
|
using namespace nix;
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#include "command.hh"
|
#include "command.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "derivations.hh"
|
#include "derivations.hh"
|
||||||
#include "nixexpr.hh"
|
#include "nixexpr.hh"
|
||||||
#include "profiles.hh"
|
#include "profiles.hh"
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
#include "serve-protocol.hh"
|
#include "serve-protocol.hh"
|
||||||
#include "shared.hh"
|
#include "shared.hh"
|
||||||
#include "store-api.hh"
|
#include "store-api.hh"
|
||||||
|
#include "local-fs-store.hh"
|
||||||
#include "util.hh"
|
#include "util.hh"
|
||||||
#include "worker-protocol.hh"
|
#include "worker-protocol.hh"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue