diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-05-07 15:37:28 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-05-07 15:37:28 +0200 |
commit | ea019e9a269ae35fdf8861485fe16e622f8293f6 (patch) | |
tree | 3ad5a7d15fd7c3e4f7a66d80d55e0d94c9bedc1c /scripts/download-from-binary-cache.pl.in | |
parent | cc837e24586eec62d07e0cb078e02caa6ee42171 (diff) |
Add option ‘extra-binary-caches’
This allows providing additional binary caches, useful in scripts like
Hydra's build reproduction scripts, in particular because untrusted
caches are ignored.
Diffstat (limited to 'scripts/download-from-binary-cache.pl.in')
-rw-r--r-- | scripts/download-from-binary-cache.pl.in | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/download-from-binary-cache.pl.in b/scripts/download-from-binary-cache.pl.in index e47457551..a511f65b4 100644 --- a/scripts/download-from-binary-cache.pl.in +++ b/scripts/download-from-binary-cache.pl.in @@ -208,12 +208,15 @@ sub getAvailableCaches { push @urls, strToList($url); } + push @urls, strToList($Nix::Config::config{"extra-binary-caches"} // ""); + # Allow Nix daemon users to override the binary caches to a subset # of those listed in the config file. Note that ‘untrusted-*’ # denotes options passed by the client. + my @trustedUrls = uniq(@urls, strToList($Nix::Config::config{"trusted-binary-caches"} // "")); + if (defined $Nix::Config::config{"untrusted-binary-caches"}) { my @untrustedUrls = strToList $Nix::Config::config{"untrusted-binary-caches"}; - my @trustedUrls = uniq(@urls, strToList($Nix::Config::config{"trusted-binary-caches"} // "")); @urls = (); foreach my $url (@untrustedUrls) { die "binary cache ‘$url’ is not trusted (please add it to ‘trusted-binary-caches’ [@trustedUrls] in $Nix::Config::confDir/nix.conf)\n" @@ -222,6 +225,12 @@ sub getAvailableCaches { } } + my @untrustedUrls = strToList $Nix::Config::config{"untrusted-extra-binary-caches"}; + foreach my $url (@untrustedUrls) { + next unless scalar(grep { $url eq $_ } @trustedUrls) > 0; + push @urls, $url; + } + foreach my $url (uniq @urls) { # FIXME: not atomic. |