Mercurial > hg > carton
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