{"thread":{"id":"353","subject":"[PATCH] cg-export user the new tar-tree","startedAt":"2005-04-27T20:14:34Z","lastAt":"2005-04-27T20:14:34Z","messageCount":1,"participants":["Joshua T. Corbin"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"1897","messageId":"20050427201434.E21BE42F01@node1.wunjo.org","threadId":"353","inReplyTo":null,"subject":"[PATCH] cg-export user the new tar-tree","fromName":"Joshua T. Corbin","fromEmail":"jcorbin@node1.wunjo.org","sentAt":"2005-04-27T20:14:34Z","receivedAt":"2005-04-27T20:14:34Z","isPatch":true,"sender":{"key":"jcorbin@node1.wunjo.org","avatar":null},"body":"If at first you don't succeed, try to fix it....failing that, dump kmail and cat | mail ;)\n\nOkay, so this time around, there are REAL-LIVE tabs in this one...\n\nAnd this time, there are no temporary files...\n\nSigned-off-by: Joshua T. Corbin <jcorbin@wunjo.org>\n\n--- 6ad600e20c89323c1d3049f75b8ca9b0a2d72167/cg-export  (mode:100755 sha1:d39eb8e723c8cb74c96b64d510f49d1bfcd7d5f8)\n+++ 345e15e9173ca1d419a2ff2583696ff4166e5df3/cg-export  (mode:100755 sha1:ff9aa02ff3426e20b09901a291d568bc2ce2b72a)\n@@ -8,15 +8,35 @@\n \n . cg-Xlib\n \n-destdir=$1\n+dest=$1\n id=$(tree-id $2)\n \n-([ \"$destdir\" ] && [ \"$id\" ]) || die \"usage: cg-export DESTDIR [TREE_ID]\"\n+([ \"$dest\" ] && [ \"$id\" ]) || die \"usage: cg-export DESTDIR [TREE_ID]\"\n \n-[ -e \"$destdir\" ] && die \"$destdir already exists.\"\n+[ -e \"$dest\" ] && die \"$dest already exists.\"\n \n-mkdir -p $destdir || die \"cannot create $destdir\"\n-export GIT_INDEX_FILE=\"$destdir/.git-index\"\n-read-tree $id\n-checkout-cache \"--prefix=$destdir/\" -a\n-rm $GIT_INDEX_FILE\n+case $dest in\n+\t*.tar|*.tar.gz|*.tar.bz2|*.tgz)\n+\t\tbase=${dest%.tar*};\n+\t\tbase=${base%.tgz}\n+\t\text=${dest#$base}\n+\t\tcase $ext in\n+\t\t.tar.gz|.tgz)\n+\t\t\ttar-tree $id \"$base\" | gzip -c9 $tar > $dest\n+\t\t\t;;\n+\t\t.tar.bz2)\n+\t\t\ttar-tree $id \"$base\" | bzip2 -c $tar > $dest\n+\t\t\t;;\n+\t\t.tar)\n+\t\t\ttar-tree $id \"$base\" > $dest\n+\t\t\t;;\n+\t\tesac\n+\t\t;;\n+\t*)\n+\t\tmkdir -p $dest || die \"cannot create $dest\"\n+\t\texport GIT_INDEX_FILE=\"$dest/.git-index\"\n+\t\tread-tree $id\n+\t\tcheckout-cache \"--prefix=$dest/\" -a\n+\t\trm $GIT_INDEX_FILE\n+\t;;\n+esac\n"}]}