diff options
Diffstat (limited to 'corepkgs/unpack-channel.sh')
-rw-r--r-- | corepkgs/unpack-channel.sh | 30 |
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 |