Show More
@@ -135,34 +135,36 b' class tarit(object):' | |||||
135 | '''write archive to tar file or stream. can write uncompressed, |
|
135 | '''write archive to tar file or stream. can write uncompressed, | |
136 | or compress with gzip or bzip2.''' |
|
136 | or compress with gzip or bzip2.''' | |
137 |
|
137 | |||
138 | class GzipFileWithTime(gzip.GzipFile): |
|
138 | if True: | |
139 | def __init__(self, *args, **kw): |
|
139 | ||
140 | timestamp = None |
|
140 | class GzipFileWithTime(gzip.GzipFile): | |
141 | if 'mtime' in kw: |
|
141 | def __init__(self, *args, **kw): | |
142 |
timestamp = |
|
142 | timestamp = None | |
143 |
if |
|
143 | if 'mtime' in kw: | |
144 |
|
|
144 | timestamp = kw.pop('mtime') | |
145 | else: |
|
145 | if timestamp is None: | |
146 |
self.timestamp = time |
|
146 | self.timestamp = time.time() | |
147 | gzip.GzipFile.__init__(self, *args, **kw) |
|
147 | else: | |
|
148 | self.timestamp = timestamp | |||
|
149 | gzip.GzipFile.__init__(self, *args, **kw) | |||
148 |
|
150 | |||
149 | def _write_gzip_header(self): |
|
151 | def _write_gzip_header(self): | |
150 | self.fileobj.write(b'\037\213') # magic header |
|
152 | self.fileobj.write(b'\037\213') # magic header | |
151 | self.fileobj.write(b'\010') # compression method |
|
153 | self.fileobj.write(b'\010') # compression method | |
152 | fname = self.name |
|
154 | fname = self.name | |
153 | if fname and fname.endswith(b'.gz'): |
|
155 | if fname and fname.endswith(b'.gz'): | |
154 | fname = fname[:-3] |
|
156 | fname = fname[:-3] | |
155 | flags = 0 |
|
157 | flags = 0 | |
156 | if fname: |
|
158 | if fname: | |
157 | flags = gzip.FNAME # pytype: disable=module-attr |
|
159 | flags = gzip.FNAME # pytype: disable=module-attr | |
158 | self.fileobj.write(pycompat.bytechr(flags)) |
|
160 | self.fileobj.write(pycompat.bytechr(flags)) | |
159 | gzip.write32u( # pytype: disable=module-attr |
|
161 | gzip.write32u( # pytype: disable=module-attr | |
160 | self.fileobj, int(self.timestamp) |
|
162 | self.fileobj, int(self.timestamp) | |
161 | ) |
|
163 | ) | |
162 | self.fileobj.write(b'\002') |
|
164 | self.fileobj.write(b'\002') | |
163 | self.fileobj.write(b'\377') |
|
165 | self.fileobj.write(b'\377') | |
164 | if fname: |
|
166 | if fname: | |
165 | self.fileobj.write(fname + b'\000') |
|
167 | self.fileobj.write(fname + b'\000') | |
166 |
|
168 | |||
167 | def __init__(self, dest, mtime, kind=b''): |
|
169 | def __init__(self, dest, mtime, kind=b''): | |
168 | self.mtime = mtime |
|
170 | self.mtime = mtime |
General Comments 0
You need to be logged in to leave comments.
Login now