aboutsummaryrefslogtreecommitdiff
path: root/corepkgs/unpack-channel.sh
diff options
context:
space:
mode:
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