aboutsummaryrefslogtreecommitdiff
path: root/corepkgs
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2012-01-03 01:51:38 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2012-01-03 01:51:38 +0000
commit39d45a6b090b5105423b22b8ef39c2a4a000a4a1 (patch)
tree945e102b1f482f8eb393fe1c597b8ea499b26bf3 /corepkgs
parentdadbb51d969517c1f2512015ab201dc99088d9a6 (diff)
* Add a test for nix-channel.
* Refactor the nix-channel unpacker a bit.
Diffstat (limited to 'corepkgs')
-rw-r--r--corepkgs/Makefile.am8
-rw-r--r--corepkgs/channels/Makefile.am11
-rw-r--r--corepkgs/channels/unpack.nix7
-rw-r--r--corepkgs/channels/unpack.sh.in35
-rw-r--r--corepkgs/unpack-channel.nix11
-rw-r--r--corepkgs/unpack-channel.sh30
6 files changed, 45 insertions, 57 deletions
diff --git a/corepkgs/Makefile.am b/corepkgs/Makefile.am
index 7f43a700e..86d7027ed 100644
--- a/corepkgs/Makefile.am
+++ b/corepkgs/Makefile.am
@@ -1,11 +1,11 @@
-SUBDIRS = channels
-
all-local: config.nix
+files = nar.nix buildenv.nix buildenv.pl unpack-channel.nix unpack-channel.sh
+
install-exec-local:
$(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs
- $(INSTALL_DATA) config.nix $(srcdir)/nar.nix $(srcdir)/buildenv.nix $(srcdir)/buildenv.pl $(DESTDIR)$(datadir)/nix/corepkgs
+ $(INSTALL_DATA) config.nix $(files) $(DESTDIR)$(datadir)/nix/corepkgs
include ../substitute.mk
-EXTRA_DIST = config.nix.in nar.nix buildenv.nix buildenv.pl
+EXTRA_DIST = config.nix.in $(files)
diff --git a/corepkgs/channels/Makefile.am b/corepkgs/channels/Makefile.am
deleted file mode 100644
index d4d478f0e..000000000
--- a/corepkgs/channels/Makefile.am
+++ /dev/null
@@ -1,11 +0,0 @@
-all-local: unpack.sh
-
-install-exec-local:
- $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs
- $(INSTALL) -d $(DESTDIR)$(datadir)/nix/corepkgs/channels
- $(INSTALL_DATA) $(srcdir)/unpack.nix $(DESTDIR)$(datadir)/nix/corepkgs/channels
- $(INSTALL_PROGRAM) unpack.sh $(DESTDIR)$(datadir)/nix/corepkgs/channels
-
-include ../../substitute.mk
-
-EXTRA_DIST = unpack.nix unpack.sh.in
diff --git a/corepkgs/channels/unpack.nix b/corepkgs/channels/unpack.nix
deleted file mode 100644
index 80ca4a371..000000000
--- a/corepkgs/channels/unpack.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{system, inputs}:
-
-derivation {
- name = "channels";
- builder = ./unpack.sh;
- inherit system inputs;
-} \ No newline at end of file
diff --git a/corepkgs/channels/unpack.sh.in b/corepkgs/channels/unpack.sh.in
deleted file mode 100644
index 6e5939f4f..000000000
--- a/corepkgs/channels/unpack.sh.in
+++ /dev/null
@@ -1,35 +0,0 @@
-#! @shell@ -e
-
-# Cygwin compatibility hack: bunzip2 expects cygwin.dll in $PATH.
-export PATH=@coreutils@
-
-@coreutils@/mkdir $out
-@coreutils@/mkdir $out/tmp
-cd $out/tmp
-
-inputs=($inputs)
-for ((n = 0; n < ${#inputs[*]}; n += 2)); do
- channelName=${inputs[n]}
- channelTarball=${inputs[n+1]}
-
- echo "unpacking channel $channelName"
-
- @bzip2@ -d < $channelTarball | @tar@ xf -
-
- if test -e */channel-name; then
- channelName="$(@coreutils@/cat */channel-name)"
- fi
-
- nr=1
- attrName=$(echo $channelName | @tr@ -- '- ' '__')
- dirName=$attrName
- while test -e ../$dirName; do
- nr=$((nr+1))
- dirName=$attrName-$nr
- done
-
- @coreutils@/mv * ../$dirName # !!! hacky
-done
-
-cd ..
-@coreutils@/rmdir tmp
diff --git a/corepkgs/unpack-channel.nix b/corepkgs/unpack-channel.nix
new file mode 100644
index 000000000..5e6ccf23f
--- /dev/null
+++ b/corepkgs/unpack-channel.nix
@@ -0,0 +1,11 @@
+with import <nix/config.nix>;
+
+{ system, inputs }:
+
+derivation {
+ name = "channels";
+ builder = shell;
+ args = [ "-e" ./unpack-channel.sh ];
+ inherit system inputs bzip2 tar tr;
+ PATH = "${nixBinDir}:${coreutils}";
+}
diff --git a/corepkgs/unpack-channel.sh b/corepkgs/unpack-channel.sh
new file mode 100644
index 000000000..7c244a6a8
--- /dev/null
+++ b/corepkgs/unpack-channel.sh
@@ -0,0 +1,30 @@
+mkdir $out
+mkdir $out/tmp
+cd $out/tmp
+
+inputs=($inputs)
+for ((n = 0; n < ${#inputs[*]}; n += 2)); do
+ channelName=${inputs[n]}
+ channelTarball=${inputs[n+1]}
+
+ echo "unpacking channel $channelName"
+
+ $bzip2 -d < $channelTarball | $tar xf -
+
+ if test -e */channel-name; then
+ channelName="$(cat */channel-name)"
+ fi
+
+ nr=1
+ attrName=$(echo $channelName | $tr -- '- ' '__')
+ dirName=$attrName
+ while test -e ../$dirName; do
+ nr=$((nr+1))
+ dirName=$attrName-$nr
+ done
+
+ mv * ../$dirName # !!! hacky
+done
+
+cd ..
+rmdir tmp