mirror of
https://github.com/NixOS/nix.git
synced 2025-11-14 06:22:42 +01:00
Clean up store hierarchy with IndirectRootStore
See the API doc comments for details.
This commit is contained in:
parent
13269ba93b
commit
60d8dd7aea
12 changed files with 136 additions and 37 deletions
|
|
@ -1,5 +1,6 @@
|
|||
#include "ssh-store-config.hh"
|
||||
#include "store-api.hh"
|
||||
#include "local-fs-store.hh"
|
||||
#include "remote-store.hh"
|
||||
#include "remote-store-connection.hh"
|
||||
#include "remote-fs-accessor.hh"
|
||||
|
|
@ -61,7 +62,7 @@ public:
|
|||
std::optional<std::string> getBuildLogExact(const StorePath & path) override
|
||||
{ unsupported("getBuildLogExact"); }
|
||||
|
||||
private:
|
||||
protected:
|
||||
|
||||
struct Connection : RemoteStore::Connection
|
||||
{
|
||||
|
|
@ -93,9 +94,12 @@ private:
|
|||
ref<RemoteStore::Connection> SSHStore::openConnection()
|
||||
{
|
||||
auto conn = make_ref<Connection>();
|
||||
conn->sshConn = master.startCommand(
|
||||
fmt("%s --stdio", remoteProgram)
|
||||
+ (remoteStore.get() == "" ? "" : " --store " + shellEscape(remoteStore.get())));
|
||||
|
||||
std::string command = remoteProgram + " --stdio";
|
||||
if (remoteStore.get() != "")
|
||||
command += " --store " + shellEscape(remoteStore.get());
|
||||
|
||||
conn->sshConn = master.startCommand(command);
|
||||
conn->to = FdSink(conn->sshConn->in.get());
|
||||
conn->from = FdSource(conn->sshConn->out.get());
|
||||
return conn;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue