aboutsummaryrefslogtreecommitdiff
path: root/corepkgs/unpack-channel.sh
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/unpack-channel.sh
parentdadbb51d969517c1f2512015ab201dc99088d9a6 (diff)
* Add a test for nix-channel.
* Refactor the nix-channel unpacker a bit.
Diffstat (limited to 'corepkgs/unpack-channel.sh')
-rw-r--r--corepkgs/unpack-channel.sh30
1 files changed, 30 insertions, 0 deletions
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