aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/legacy-ssh-store.cc
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-08-03 18:07:46 +0200
committerEelco Dolstra <edolstra@gmail.com>2018-08-03 21:20:38 +0200
commite268bbc05435d8121275136934a594fc70a73da9 (patch)
treef9a7da20f47f8c13670cd5ab98084d5335b50a3d /src/libstore/legacy-ssh-store.cc
parent25da1c64f90be14641c4cbcd7cf55875b6f76231 (diff)
LegacySSHStore: Add remote-store option
This is primarily useful for testing, e.g. $ nix copy --to 'ssh://localhost?remote-store=/tmp/nix' ...
Diffstat (limited to 'src/libstore/legacy-ssh-store.cc')
-rw-r--r--src/libstore/legacy-ssh-store.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libstore/legacy-ssh-store.cc b/src/libstore/legacy-ssh-store.cc
index 02d91ded0..f9b0b42c8 100644
--- a/src/libstore/legacy-ssh-store.cc
+++ b/src/libstore/legacy-ssh-store.cc
@@ -17,6 +17,7 @@ struct LegacySSHStore : public Store
const Setting<Path> sshKey{this, "", "ssh-key", "path to an SSH private key"};
const Setting<bool> compress{this, false, "compress", "whether to compress the connection"};
const Setting<Path> remoteProgram{this, "nix-store", "remote-program", "path to the nix-store executable on the remote system"};
+ const Setting<std::string> remoteStore{this, "", "remote-store", "URI of the store on the remote system"};
// Hack for getting remote build log output.
const Setting<int> logFD{this, -1, "log-fd", "file descriptor to which SSH's stderr is connected"};
@@ -56,7 +57,9 @@ struct LegacySSHStore : public Store
ref<Connection> openConnection()
{
auto conn = make_ref<Connection>();
- conn->sshConn = master.startCommand(fmt("%s --serve --write", remoteProgram));
+ conn->sshConn = master.startCommand(
+ fmt("%s --serve --write", remoteProgram)
+ + (remoteStore.get() == "" ? "" : " --store " + shellEscape(remoteStore.get())));
conn->to = FdSink(conn->sshConn->in.get());
conn->from = FdSource(conn->sshConn->out.get());