Mercurial > hg > carton
comparison 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 |
comparison
equal
deleted
inserted
replaced
12:542b46ac4e28 | 13:f522620c6a78 |
---|---|
141 | 141 |
142 if isURL(source): | 142 if isURL(source): |
143 # remote tarball | 143 # remote tarball |
144 raise NotImplementedError | 144 raise NotImplementedError |
145 else: | 145 else: |
146 assert os.path.exists(source), "%s does not exist" % source | |
147 | |
146 # local directory or tarball | 148 # local directory or tarball |
147 # TODO: check for a tarball | 149 if (not os.path.isdir(source)) and tarfile.is_tarfile(source): |
148 source_buffer = StringIO() | 150 # check for a tarball |
149 source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer) | 151 buffer = file(source).read() |
150 source_tar.add(source, arcname=os.path.basename(source)) | 152 else: |
151 source_tar.close() | 153 source_buffer = StringIO() |
152 buffer = source_buffer.getvalue() | 154 source_tar = tarfile.open(mode="w:gz", fileobj=source_buffer) |
155 source_tar.add(source, arcname=os.path.basename(source)) | |
156 source_tar.close() | |
157 buffer = source_buffer.getvalue() | |
153 | 158 |
154 # could use git, hg, etc repos. but probably shouldn't | 159 # could use git, hg, etc repos. but probably shouldn't |
155 | 160 |
156 source_array.append(buffer.encode('zlib').encode('base64')) | 161 source_array.append(buffer.encode('zlib').encode('base64')) |
157 | 162 |