aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2020-09-17 09:35:30 +0200
committerEelco Dolstra <edolstra@gmail.com>2020-09-17 09:41:02 +0200
commit787469c7b66aec12ab6847e7db2cdc8aef5c325e (patch)
treeeb2eb8f058ad7149befb6cf4fd1b582546e46569
parent10d1865f5f443ddd57bb408a99f0afd74436e963 (diff)
Remove corepkgs/unpack-channel.nix
-rw-r--r--corepkgs/local.mk1
-rwxr-xr-xsrc/nix-channel/nix-channel.cc11
-rw-r--r--src/nix-channel/unpack-channel.nix (renamed from corepkgs/unpack-channel.nix)0
-rw-r--r--src/nix/local.mk2
4 files changed, 11 insertions, 3 deletions
diff --git a/corepkgs/local.mk b/corepkgs/local.mk
index 57f6d53a7..1546b4ef3 100644
--- a/corepkgs/local.mk
+++ b/corepkgs/local.mk
@@ -1,5 +1,4 @@
corepkgs_FILES = \
- unpack-channel.nix \
fetchurl.nix
$(foreach file,config.nix $(corepkgs_FILES),$(eval $(call install-data-in,$(d)/$(file),$(datadir)/nix/corepkgs)))
diff --git a/src/nix-channel/nix-channel.cc b/src/nix-channel/nix-channel.cc
index 3ccf620c9..e48f7af9a 100755
--- a/src/nix-channel/nix-channel.cc
+++ b/src/nix-channel/nix-channel.cc
@@ -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");
diff --git a/corepkgs/unpack-channel.nix b/src/nix-channel/unpack-channel.nix
index 10515bc8b..10515bc8b 100644
--- a/corepkgs/unpack-channel.nix
+++ b/src/nix-channel/unpack-channel.nix
diff --git a/src/nix/local.mk b/src/nix/local.mk
index e96200685..ab4e9121b 100644
--- a/src/nix/local.mk
+++ b/src/nix/local.mk
@@ -29,3 +29,5 @@ $(eval $(call install-symlink, $(bindir)/nix, $(libexecdir)/nix/build-remote))
src/nix-env/user-env.cc: src/nix-env/buildenv.nix.gen.hh
src/nix/develop.cc: src/nix/get-env.sh.gen.hh
+
+src/nix-channel/nix-channel.cc: src/nix-channel/unpack-channel.nix.gen.hh