X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=blobdiff_plain;f=dak%2Fgenerate_index_diffs.py;h=485d3770ff6c60bb3e70cf89ba10f9110e241126;hp=e3cbd320786ba53399bda3ffa4ff34dd8b365072;hb=653c6617323bc6601c071185265a5f8b663e5e3d;hpb=ee9797a2eb6f4db22e48ede6667c18fbc4c3301c diff --git a/dak/generate_index_diffs.py b/dak/generate_index_diffs.py index e3cbd320..485d3770 100755 --- a/dak/generate_index_diffs.py +++ b/dak/generate_index_diffs.py @@ -73,7 +73,7 @@ def tryunlink(file): print "warning: removing of %s denied" % (file) def smartstat(file): - for ext in ["", ".gz", ".bz2"]: + for ext in ["", ".gz", ".bz2", ".xz"]: if os.path.isfile(file + ext): return (ext, os.stat(file + ext)) return (None, None) @@ -85,6 +85,8 @@ def smartlink(f, t): os.system("gzip -d < %s.gz > %s" % (f, t)) elif os.path.isfile("%s.bz2" % (f)): os.system("bzip2 -d < %s.bz2 > %s" % (f, t)) + elif os.path.isfile("%s.xz" % (f)): + os.system("xz -d < %s.xz > %s" % (f, t)) else: print "missing: %s" % (f) raise IOError(f) @@ -96,6 +98,8 @@ def smartopen(file): f = create_temp_file(os.popen("zcat %s.gz" % file, "r")) elif os.path.isfile("%s.bz2" % file): f = create_temp_file(os.popen("bzcat %s.bz2" % file, "r")) + elif os.path.isfile("%s.xz" % file): + f = create_temp_file(os.popen("xzcat %s.xz" % file, "r")) else: f = None return f @@ -103,7 +107,7 @@ def smartopen(file): def pipe_file(f, t): f.seek(0) while 1: - l = f.read() + l = f.read(65536) if not l: break t.write(l) t.close() @@ -239,7 +243,7 @@ class Updates: def create_temp_file(r): f = tempfile.TemporaryFile() while 1: - x = r.readline() + x = r.read(65536) if not x: break f.write(x) r.close()