about summary refs log tree commit diff
path: root/corepkgs/unpack-channel.sh
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2012-01-03T12·59+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2012-01-03T12·59+0000
commit6c31232e1494d1d68a31fb8433dbf593f831dff2 (patch)
tree9acd7f0e2279bd971b5ccd1f1eb8cec8b7937003 /corepkgs/unpack-channel.sh
parent502d94048ae848eda1fcda2d1e72b339eaa653aa (diff)
parent63227d434cefaa9faeb14afe28ebeb9b2d449ee2 (diff)
* Sync with the trunk.
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 000000000000..7c244a6a8552
--- /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