threads / patch / 322

patchcg-export to tarball

Subject: [PATCH] cg-export to tarball

## tl;dr

3 messages between Apr 26, 2005 and Apr 26, 2005. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Joshua T. Corbin· Apr 26, 2005, 07:12 UTC · lore

The following patch to cg-export will simlpy create a tarball if the argument ends in .tar.gz, .tar.bz2, or .tar.

Signed-off-by; Joshua T. Corbin <jcorbin@wunjo.org>
Show changes to diff +25 −0
Index: cg-export
===================================================================
--- c7eec90959408a71c465b36e728113a2754f99df/cg-export  (mode:100755 
sha1:94d419de48a12f1ea1059451ac4cd489f7008916)
+++ b839b802f91e79ea7b0bb7dcf3e228659bf96a87/cg-export  (mode:100755 
sha1:29834b2749b0a8d7c71a4c67325e4f5ece9d28a0)
@@ -24,8 +24,33 @@
 
 [ -e "$destdir" ] && die "$destdir already exists."
 
+case $destdir in
+  *.tar*)
+    tarfile=$destdir
+    destdir=${destdir%.tar*}
+    ;;
+esac
+
 mkdir -p $destdir || die "cannot create $destdir"
 export GIT_INDEX_FILE="$destdir/.git-index"
 read-tree $id
 checkout-cache "--prefix=$destdir/" -a
 rm $GIT_INDEX_FILE
+
+[ -z "$tarfile" ] && exit 0
+
+case $tarfile in
+  *.tar.gz)
+    tar -cvzf $tarfile $destdir || die "Failed to create $tarfile"
+    ;;
+  *.tar.bz2)
+    tar -cvjf $tarfile $destdir || die "Failed to create $tarfile"
+    ;;
+  *.tar)
+    tar -cvf $tarfile $destdir || die "Failed to create $tarfile"
+    ;;
+  *)
+    die "Don't know how to make a ${tarfile#$destdir} file"
+    ;;
+esac
+rm -fr $destdir
Petr Baudis· Apr 26, 2005, 20:20 UTC · re: Joshua T. Corbin · lore

Re: [PATCH] cg-export to tarball

Dear diary, on Tue, Apr 26, 2005 at 09:12:46AM CEST, I got a letter where "Joshua T. Corbin" <jcorbin@wunjo.org> told me that...

> The following patch to cg-export will simlpy create a tarball if the argument 
> ends in .tar.gz, .tar.bz2, or .tar.
> 
> Signed-off-by; Joshua T. Corbin <jcorbin@wunjo.org>

What about cooperating with Rene Scharfe and using his tar-tree? I didn't actually try it yet (not even look at the code so far), it'd be cool if someone would give it some review and testing.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor
Rene Scharfe· Apr 26, 2005, 22:24 UTC · re: Petr Baudis · lore

Re: [PATCH] cg-export to tarball

Petr Baudis schrieb:
Show 12 quoted lines
> Dear diary, on Tue, Apr 26, 2005 at 09:12:46AM CEST, I got a letter 
> where "Joshua T. Corbin" <jcorbin@wunjo.org> told me that...
> 
>> The following patch to cg-export will simlpy create a tarball if 
>> the argument ends in .tar.gz, .tar.bz2, or .tar.
>> 
>> Signed-off-by; Joshua T. Corbin <jcorbin@wunjo.org>
> 
> 
> What about cooperating with Rene Scharfe and using his tar-tree? I 
> didn't actually try it yet (not even look at the code so far), it'd 
> be cool if someone would give it some review and testing.
Yes, this looks like a job for tar-tree.  You could do something like this:
   destbasename=${destdir##*/}
   case "$destdir" in
   *.tar)
       tar-tree $id "${destbasename%.tar}" > "$destdir"
       ;;
   *.tgz)
       tar-tree $id "${destbasename%.tgz}" | gzip -9 > "$destdir"
       ;;
   # *.tar.gz, *.tar.bz2, ...
   *)
       mkdir -p "$destdir" || die "cannot create $destdir"
       export GIT_INDEX_FILE="$destdir/.git-index"
       read-tree $id
       checkout-cache "--prefix=$destdir/" -a
       rm "$GIT_INDEX_FILE"
       ;;
   esac

The second parameter to tar-tree is an optional prefix for all paths inside the archive (official kernel tarballs always have linux-2.x.xx as a prefix). It makes some sense to set this value to the archive filename, "cg-export linux-2.6.12-rc3.tar.bz2" would than work as expected.

What do you think? If you like it I'll cook up a patch later unless you beat me to it.

Thanks, Rene

← back to recent threads