diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-05-01T15·35+0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-05-01T15·35+0200 |
commit | 031d70e5009fcce58afabc9113d5a5de4a16b19a (patch) | |
tree | 1b65c2d98cc364f82ea9a42eff129128c2606339 /src/libstore/store-api.hh | |
parent | 3e4bdfedee747868a32b8a9c7a89a6f860415be8 (diff) |
Support arbitrary store URIs in nix.machines
For backwards compatibility, if the URI is just a hostname, ssh:// (i.e. LegacySSHStore) is prepended automatically. Also, all fields except the URI are now optional. For example, this is a valid nix.machines file: local?root=/tmp/nix This is useful for testing the remote build machinery since you don't have to mess around with ssh.
Diffstat (limited to 'src/libstore/store-api.hh')
-rw-r--r-- | src/libstore/store-api.hh | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh index b763849ade93..2388558b3624 100644 --- a/src/libstore/store-api.hh +++ b/src/libstore/store-api.hh @@ -668,20 +668,31 @@ void removeTempRoots(); /* Return a Store object to access the Nix store denoted by ‘uri’ (slight misnomer...). Supported values are: - * ‘direct’: The Nix store in /nix/store and database in + * ‘local’: The Nix store in /nix/store and database in /nix/var/nix/db, accessed directly. * ‘daemon’: The Nix store accessed via a Unix domain socket connection to nix-daemon. + * ‘auto’ or ‘’: Equivalent to ‘local’ or ‘daemon’ depending on + whether the user has write access to the local Nix + store/database. + * ‘file://<path>’: A binary cache stored in <path>. - If ‘uri’ is empty, it defaults to ‘direct’ or ‘daemon’ depending on - whether the user has write access to the local Nix store/database. - set to true *unless* you're going to collect garbage. */ -ref<Store> openStore(const std::string & uri = getEnv("NIX_REMOTE")); + * ‘https://<path>’: A binary cache accessed via HTTP. + + * ‘s3://<path>’: A writable binary cache stored on Amazon's Simple + Storage Service. + + * ‘ssh://[user@]<host>’: A remote Nix store accessed by running + ‘nix-store --serve’ via SSH. -ref<Store> openStore(const std::string & uri, const Store::Params & params); + You can pass parameters to the store implementation by appending + ‘?key=value&key=value&...’ to the URI. +*/ +ref<Store> openStore(const std::string & uri = getEnv("NIX_REMOTE"), + const Store::Params & extraParams = Store::Params()); void copyPaths(ref<Store> from, ref<Store> to, const PathSet & storePaths, bool substitute = false); |