diff options
author | Eelco Dolstra <e.dolstra@tudelft.nl> | 2012-01-03T01·51+0000 |
---|---|---|
committer | Eelco Dolstra <e.dolstra@tudelft.nl> | 2012-01-03T01·51+0000 |
commit | 39d45a6b090b5105423b22b8ef39c2a4a000a4a1 (patch) | |
tree | 945e102b1f482f8eb393fe1c597b8ea499b26bf3 /corepkgs/unpack-channel.sh | |
parent | dadbb51d969517c1f2512015ab201dc99088d9a6 (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.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 |