about summary refs log tree commit diff
path: root/third_party/nix/src/libstore/ssh-store.cc
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src/libstore/ssh-store.cc')
-rw-r--r--third_party/nix/src/libstore/ssh-store.cc128
1 files changed, 56 insertions, 72 deletions
diff --git a/third_party/nix/src/libstore/ssh-store.cc b/third_party/nix/src/libstore/ssh-store.cc
index 93e11738991f..f11acc7b80ae 100644
--- a/third_party/nix/src/libstore/ssh-store.cc
+++ b/third_party/nix/src/libstore/ssh-store.cc
@@ -1,100 +1,84 @@
-#include "store-api.hh"
-#include "remote-store.hh"
-#include "remote-fs-accessor.hh"
 #include "archive.hh"
-#include "worker-protocol.hh"
 #include "pool.hh"
+#include "remote-fs-accessor.hh"
+#include "remote-store.hh"
 #include "ssh.hh"
+#include "store-api.hh"
+#include "worker-protocol.hh"
 
 namespace nix {
 
 static std::string uriScheme = "ssh-ng://";
 
-class SSHStore : public RemoteStore
-{
-public:
-
-    const Setting<Path> sshKey{(Store*) this, "", "ssh-key", "path to an SSH private key"};
-    const Setting<bool> compress{(Store*) this, false, "compress", "whether to compress the connection"};
+class SSHStore : public RemoteStore {
+ public:
+  const Setting<Path> sshKey{(Store*)this, "", "ssh-key",
+                             "path to an SSH private key"};
+  const Setting<bool> compress{(Store*)this, false, "compress",
+                               "whether to compress the connection"};
 
-    SSHStore(const std::string & host, const Params & params)
-        : Store(params)
-        , RemoteStore(params)
-        , host(host)
-        , master(
-            host,
-            sshKey,
-            // Use SSH master only if using more than 1 connection.
-            connections->capacity() > 1,
-            compress)
-    {
-    }
+  SSHStore(const std::string& host, const Params& params)
+      : Store(params),
+        RemoteStore(params),
+        host(host),
+        master(host, sshKey,
+               // Use SSH master only if using more than 1 connection.
+               connections->capacity() > 1, compress) {}
 
-    std::string getUri() override
-    {
-        return uriScheme + host;
-    }
+  std::string getUri() override { return uriScheme + host; }
 
-    bool sameMachine()
-    { return false; }
+  bool sameMachine() { return false; }
 
-    void narFromPath(const Path & path, Sink & sink) override;
+  void narFromPath(const Path& path, Sink& sink) override;
 
-    ref<FSAccessor> getFSAccessor() override;
+  ref<FSAccessor> getFSAccessor() override;
 
-private:
+ private:
+  struct Connection : RemoteStore::Connection {
+    std::unique_ptr<SSHMaster::Connection> sshConn;
+  };
 
-    struct Connection : RemoteStore::Connection
-    {
-        std::unique_ptr<SSHMaster::Connection> sshConn;
-    };
+  ref<RemoteStore::Connection> openConnection() override;
 
-    ref<RemoteStore::Connection> openConnection() override;
+  std::string host;
 
-    std::string host;
+  SSHMaster master;
 
-    SSHMaster master;
-
-    void setOptions(RemoteStore::Connection & conn) override
-    {
-        /* TODO Add a way to explicitly ask for some options to be
-           forwarded. One option: A way to query the daemon for its
-           settings, and then a series of params to SSHStore like
-           forward-cores or forward-overridden-cores that only
-           override the requested settings.
-        */
-    };
+  void setOptions(RemoteStore::Connection& conn) override{
+      /* TODO Add a way to explicitly ask for some options to be
+         forwarded. One option: A way to query the daemon for its
+         settings, and then a series of params to SSHStore like
+         forward-cores or forward-overridden-cores that only
+         override the requested settings.
+      */
+  };
 };
 
-void SSHStore::narFromPath(const Path & path, Sink & sink)
-{
-    auto conn(connections->get());
-    conn->to << wopNarFromPath << path;
-    conn->processStderr();
-    copyNAR(conn->from, sink);
+void SSHStore::narFromPath(const Path& path, Sink& sink) {
+  auto conn(connections->get());
+  conn->to << wopNarFromPath << path;
+  conn->processStderr();
+  copyNAR(conn->from, sink);
 }
 
-ref<FSAccessor> SSHStore::getFSAccessor()
-{
-    return make_ref<RemoteFSAccessor>(ref<Store>(shared_from_this()));
+ref<FSAccessor> SSHStore::getFSAccessor() {
+  return make_ref<RemoteFSAccessor>(ref<Store>(shared_from_this()));
 }
 
-ref<RemoteStore::Connection> SSHStore::openConnection()
-{
-    auto conn = make_ref<Connection>();
-    conn->sshConn = master.startCommand("nix-daemon --stdio");
-    conn->to = FdSink(conn->sshConn->in.get());
-    conn->from = FdSource(conn->sshConn->out.get());
-    initConnection(*conn);
-    return conn;
+ref<RemoteStore::Connection> SSHStore::openConnection() {
+  auto conn = make_ref<Connection>();
+  conn->sshConn = master.startCommand("nix-daemon --stdio");
+  conn->to = FdSink(conn->sshConn->in.get());
+  conn->from = FdSource(conn->sshConn->out.get());
+  initConnection(*conn);
+  return conn;
 }
 
-static RegisterStoreImplementation regStore([](
-    const std::string & uri, const Store::Params & params)
-    -> std::shared_ptr<Store>
-{
-    if (std::string(uri, 0, uriScheme.size()) != uriScheme) return 0;
-    return std::make_shared<SSHStore>(std::string(uri, uriScheme.size()), params);
+static RegisterStoreImplementation regStore([](const std::string& uri,
+                                               const Store::Params& params)
+                                                -> std::shared_ptr<Store> {
+  if (std::string(uri, 0, uriScheme.size()) != uriScheme) return 0;
+  return std::make_shared<SSHStore>(std::string(uri, uriScheme.size()), params);
 });
 
-}
+}  // namespace nix