thash uncompressed files in memory when writing Release files - amprolla - devuan's apt repo merger (HTM) git clone git://parazyd.org/amprolla.git (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 8cd123722f4b3406c7a955772630e4f7e12ce6fe (DIR) parent 5fb4b7e58772859b95577b49011ae366fd1b8667 (HTM) Author: parazyd <parazyd@dyne.org> Date: Tue, 11 Jul 2017 23:09:04 +0200 hash uncompressed files in memory when writing Release files Diffstat: M lib/release.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) --- (DIR) diff --git a/lib/release.py b/lib/release.py t@@ -5,7 +5,9 @@ Release file functions and helpers """ from datetime import datetime, timedelta -from os.path import getsize, isfile +from gzip import decompress as gzip_decomp +from lzma import compress as lzma_comp +from os.path import basename, getsize, isfile import gnupg from lib.config import (checksums, distrolabel, gpgdir, release_aliases, t@@ -67,6 +69,18 @@ def write_release(oldrel, newrel, filelist, r, sign=True, rewrite=True): cont = open(f, 'rb').read() new.write(' %s %8s %s\n' % (csum['f'](cont).hexdigest(), getsize(f), f.replace(r+'/', ''))) + elif f.endswith('.xz') and isfile(f.replace('.xz', '.gz')): + xzstr = lzma_comp(open(f.replace('.xz', '.gz'), 'rb').read()) + new.write(' %s %8s %s\n' % (csum['f'](xzstr).hexdigest(), + len(xzstr), f.replace(r+'/', ''))) + elif not f.endswith('.gz') and isfile(f+'.gz'): + uncomp = gzip_decomp(open(f+'.gz', 'rb').read()) + new.write(' %s %8s %s\n' % (csum['f'](uncomp).hexdigest(), + len(uncomp), f.replace(r+'/', ''))) + # elif basename(f).startswith('Contents') and isfile(f+'.gz'): + # uncomp = gzip_decomp(open(f+'.gz', 'rb').read()) + # new.write(' %s %8s %s\n' % (csum['f'](uncomp).hexdigest(), + # len(uncomp), f.replace(r+'/', ''))) new.close()