diff carton.py @ 13:f522620c6a78

now works properly with tarballs
author Jeff Hammel <jhammel@mozilla.com>
date Fri, 08 Jul 2011 15:20:01 -0700
parents 542b46ac4e28
children c474362cf69a
line wrap: on
line diff
--- a/carton.py	Fri Jul 08 15:04:15 2011 -0700
+++ b/carton.py	Fri Jul 08 15:20:01 2011 -0700
@@ -143,13 +143,18 @@
             # remote tarball
             raise NotImplementedError
         else:
+            assert os.path.exists(source), "%s does not exist" % source
+            
             # local directory or tarball
-            # TODO: check for a tarball
-            source_buffer = StringIO()
-            source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer)
-            source_tar.add(source, arcname=os.path.basename(source))
-            source_tar.close()
-            buffer = source_buffer.getvalue()
+            if (not os.path.isdir(source)) and tarfile.is_tarfile(source):
+                # check for a tarball
+                buffer = file(source).read()
+            else:
+                source_buffer = StringIO()
+                source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer)
+                source_tar.add(source, arcname=os.path.basename(source))
+                source_tar.close()
+                buffer = source_buffer.getvalue()
 
         # could use git, hg, etc repos. but probably shouldn't