comparison bin/recompress @ 98:9be628347dce

Worst thing about unix: it allows control character and newline in its filename. Added handler to ensure that shit doesn't pass through. Makes things slow but it can't be helped (tm).
author Edho Prima Arief <edho@myconan.net>
date Thu, 14 Jul 2011 01:11:18 +0700
parents a5324d2cc0eb
children 97e24e89388f
comparison
equal deleted inserted replaced
97:65ce115fd21d 98:9be628347dce
19 while outbyte > 1000: 19 while outbyte > 1000:
20 outbyte /= 1000 20 outbyte /= 1000
21 current_unit += 1 21 current_unit += 1
22 return "%.2f %s" % (outbyte, units[current_unit]) 22 return "%.2f %s" % (outbyte, units[current_unit])
23 23
24 def sane_fn(filename):
25 import re
26 return re.sub(r"[\x00-\x1F\x7F\n\r]", "?", filename)
27
24 if __name__ == "__main__": 28 if __name__ == "__main__":
25 for filename in sys.argv[1:]: 29 for filename in sys.argv[1:]:
26 print "Recompressing %s:" % filename, 30 print "Recompressing %s:" % sane_fn(filename),
27 sys.stdout.flush() 31 sys.stdout.flush()
28 try: 32 try:
29 byte_orig = os.path.getsize(filename) 33 byte_orig = os.path.getsize(filename)
30 repng(filename) 34 repng(filename)
31 byte_new = os.path.getsize(filename) 35 byte_new = os.path.getsize(filename)