mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
Add download-via-ssh substituter
This substituter connects to a remote host, runs nix-store --serve there, and then forwards substituter commands on to the remote host and sends their results to the calling program. The ssh-substituter-hosts option can be specified as a list of hosts to try. This is an initial implementation and, while it works, it has some limitations: * Only the first host is used * There is no caching of query results (all queries are sent to the remote machine) * There is no informative output (such as progress bars) * Some failure modes may cause unhelpful error messages * There is no concept of trusted-ssh-substituter-hosts Signed-off-by: Shea Levy <shea@shealevy.com>
This commit is contained in:
parent
5671188eb2
commit
64e23d0a38
6 changed files with 168 additions and 0 deletions
|
@ -25,6 +25,8 @@ struct Settings {
|
|||
|
||||
string pack();
|
||||
|
||||
void unpack(string pack);
|
||||
|
||||
SettingsMap getOverrides();
|
||||
|
||||
/* The directory where we store sources and derived files. */
|
||||
|
@ -144,6 +146,9 @@ struct Settings {
|
|||
chroot. */
|
||||
StringSet dirsInChroot;
|
||||
|
||||
/* Set of ssh connection strings for the ssh substituter */
|
||||
Strings sshSubstituterHosts;
|
||||
|
||||
/* Whether to impersonate a Linux 2.6 machine on newer kernels. */
|
||||
bool impersonateLinux26;
|
||||
|
||||
|
@ -195,6 +200,7 @@ private:
|
|||
void get(string & res, const string & name);
|
||||
void get(bool & res, const string & name);
|
||||
void get(StringSet & res, const string & name);
|
||||
void get(Strings & res, const string & name);
|
||||
template<class N> void get(N & res, const string & name);
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue