mirror of
https://github.com/NixOS/nix
synced 2025-06-29 02:11:15 +02:00
Ensure we can construct remote store configs in isolation
Progress towards #10766 I thought that #10768 achieved, but when I went to use this stuff (in Hydra), turns out it did not. (Those `using FooConfig;` lines were not working --- they are so finicky!) This PR gets the job done, and adds some trivial unit tests to make sure I did what I intended. I had to add add a header to expose `SSHStoreConfig`, after which the preexisting `ssh-store-config.*` were very confusingly named files, so I renamed them to `common-ssh-store-config.hh` to match the type defined therein.
This commit is contained in:
parent
846869da0e
commit
808082ea03
11 changed files with 120 additions and 26 deletions
|
@ -1,7 +1,5 @@
|
|||
#include "ssh-store-config.hh"
|
||||
#include "store-api.hh"
|
||||
#include "ssh-store.hh"
|
||||
#include "local-fs-store.hh"
|
||||
#include "remote-store.hh"
|
||||
#include "remote-store-connection.hh"
|
||||
#include "source-accessor.hh"
|
||||
#include "archive.hh"
|
||||
|
@ -12,23 +10,22 @@
|
|||
|
||||
namespace nix {
|
||||
|
||||
struct SSHStoreConfig : virtual RemoteStoreConfig, virtual CommonSSHStoreConfig
|
||||
SSHStoreConfig::SSHStoreConfig(
|
||||
std::string_view scheme,
|
||||
std::string_view authority,
|
||||
const Params & params)
|
||||
: StoreConfig(params)
|
||||
, RemoteStoreConfig(params)
|
||||
, CommonSSHStoreConfig(scheme, authority, params)
|
||||
{
|
||||
using RemoteStoreConfig::RemoteStoreConfig;
|
||||
using CommonSSHStoreConfig::CommonSSHStoreConfig;
|
||||
}
|
||||
|
||||
const Setting<Strings> remoteProgram{this, {"nix-daemon"}, "remote-program",
|
||||
"Path to the `nix-daemon` executable on the remote machine."};
|
||||
|
||||
const std::string name() override { return "Experimental SSH Store"; }
|
||||
|
||||
std::string doc() override
|
||||
{
|
||||
return
|
||||
#include "ssh-store.md"
|
||||
;
|
||||
}
|
||||
};
|
||||
std::string SSHStoreConfig::doc()
|
||||
{
|
||||
return
|
||||
#include "ssh-store.md"
|
||||
;
|
||||
}
|
||||
|
||||
class SSHStore : public virtual SSHStoreConfig, public virtual RemoteStore
|
||||
{
|
||||
|
@ -41,7 +38,7 @@ public:
|
|||
: StoreConfig(params)
|
||||
, RemoteStoreConfig(params)
|
||||
, CommonSSHStoreConfig(scheme, host, params)
|
||||
, SSHStoreConfig(params)
|
||||
, SSHStoreConfig(scheme, host, params)
|
||||
, Store(params)
|
||||
, RemoteStore(params)
|
||||
, master(createSSHMaster(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue