# # # patch "www/viewmtn/wrapper.py" # from [74ed9539b82abb9d1a6952aafe0b03b63c44abcf] # to [9800b8a1b0a43056637ce2ede18dcc7c44657ec5] # ============================================================ --- www/viewmtn/wrapper.py 74ed9539b82abb9d1a6952aafe0b03b63c44abcf +++ www/viewmtn/wrapper.py 9800b8a1b0a43056637ce2ede18dcc7c44657ec5 @@ -102,12 +102,13 @@ rv['type'] = 'manifest' dir_seen = {} # would use a set, but need python2.4 really rv['file_count'] = 0 - for file_id, filename in ((t[3], t[1]) for t in mt.manifest_of(query['id'])['file']): - fsp = filename.rsplit('/', 1) - if len(fsp) == 2 and not dir_seen.has_key(fsp[1]): - dir_seen[fsp[1]] = True - rv['file_count'] += 1 - rv['directory_count'] = len(dir_seen.keys()) + 1 # root dir + for t in mt.manifest_of(query['id'])['file']: + for file_id, filename in (t[3], t[1]): + fsp = filename.rsplit('/', 1) + if len(fsp) == 2 and not dir_seen.has_key(fsp[1]): + dir_seen[fsp[1]] = True + rv['file_count'] += 1 + rv['directory_count'] = len(dir_seen.keys()) + 1 # root dir req.write(writer.write(rv)) return apache.OK @@ -136,17 +137,18 @@ req.content_type = 'application/x-tar; charset=utf-8' req.headers_out["Content-Disposition"] = "attachment; filename=%s" % tar_file_name tf = tarfile.open(mode="w", fileobj=tar_file) - for fileid, filename in ((t[3], t[1]) for t in mt.manifest_of(id)['file']): - data = mt.file(fileid) - ti = tarfile.TarInfo() - ti.mode = 00700 - ti.mtime = 0 - ti.type = tarfile.REGTYPE - ti.uid = 0 - ti.gid = 0 - ti.name = os.path.join(id, filename) - ti.size = len(data) - tf.addfile(ti, DummyFile(data)) + for t in mt.manifest_of(id)['file']: + for fileid, filename in (t[3], t[1]): + data = mt.file(fileid) + ti = tarfile.TarInfo() + ti.mode = 00700 + ti.mtime = 0 + ti.type = tarfile.REGTYPE + ti.uid = 0 + ti.gid = 0 + ti.name = os.path.join(id, filename) + ti.size = len(data) + tf.addfile(ti, DummyFile(data)) tf.close() req.write(tar_file.buf) return apache.OK