mirror of
https://github.com/NixOS/nix
synced 2025-06-28 13:41:15 +02:00
Merge remote-tracking branch 'origin/master' into github-api-token
This commit is contained in:
commit
faa5607f54
82 changed files with 979 additions and 753 deletions
|
@ -76,6 +76,13 @@ static void update(const StringSet & channelNames)
|
|||
|
||||
auto store = openStore();
|
||||
|
||||
auto [fd, unpackChannelPath] = createTempFile();
|
||||
writeFull(fd.get(),
|
||||
#include "unpack-channel.nix.gen.hh"
|
||||
);
|
||||
fd = -1;
|
||||
AutoDelete del(unpackChannelPath, false);
|
||||
|
||||
// Download each channel.
|
||||
Strings exprs;
|
||||
for (const auto & channel : channels) {
|
||||
|
@ -104,7 +111,7 @@ static void update(const StringSet & channelNames)
|
|||
|
||||
bool unpacked = false;
|
||||
if (std::regex_search(filename, std::regex("\\.tar\\.(gz|bz2|xz)$"))) {
|
||||
runProgram(settings.nixBinDir + "/nix-build", false, { "--no-out-link", "--expr", "import <nix/unpack-channel.nix> "
|
||||
runProgram(settings.nixBinDir + "/nix-build", false, { "--no-out-link", "--expr", "import " + unpackChannelPath +
|
||||
"{ name = \"" + cname + "\"; channelName = \"" + name + "\"; src = builtins.storePath \"" + filename + "\"; }" });
|
||||
unpacked = true;
|
||||
}
|
||||
|
@ -125,7 +132,7 @@ static void update(const StringSet & channelNames)
|
|||
// Unpack the channel tarballs into the Nix store and install them
|
||||
// into the channels profile.
|
||||
std::cerr << "unpacking channels...\n";
|
||||
Strings envArgs{ "--profile", profile, "--file", "<nix/unpack-channel.nix>", "--install", "--from-expression" };
|
||||
Strings envArgs{ "--profile", profile, "--file", unpackChannelPath, "--install", "--from-expression" };
|
||||
for (auto & expr : exprs)
|
||||
envArgs.push_back(std::move(expr));
|
||||
envArgs.push_back("--quiet");
|
||||
|
|
12
src/nix-channel/unpack-channel.nix
Normal file
12
src/nix-channel/unpack-channel.nix
Normal file
|
@ -0,0 +1,12 @@
|
|||
{ name, channelName, src }:
|
||||
|
||||
derivation {
|
||||
builder = "builtin:unpack-channel";
|
||||
|
||||
system = "builtin";
|
||||
|
||||
inherit name channelName src;
|
||||
|
||||
# No point in doing this remotely.
|
||||
preferLocalBuild = true;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue