ddnet/scripts/cmd5.py

37 lines
1,003 B
Python
Raw Normal View History

2009-06-07 14:40:58 +00:00
import hashlib, sys, re
2007-08-22 21:13:33 +00:00
alphanum = "0123456789abcdefghijklmnopqrstuvwzyxABCDEFGHIJKLMNOPQRSTUVWXYZ_"
def cstrip(lines):
d = ""
for l in lines:
l = re.sub("#.*", "", l)
l = re.sub("//.*", "", l)
d += l + " "
d = re.sub("\/\*.*?\*/", "", d) # remove /* */ comments
d = d.replace("\t", " ") # tab to space
d = re.sub(" *", " ", d) # remove double spaces
d = re.sub("", "", d) # remove /* */ comments
d = d.strip()
# this eats up cases like 'n {'
i = 1
while i < len(d)-2:
if d[i] == ' ':
if not (d[i-1] in alphanum and d[i+1] in alphanum):
d = d[:i] + d[i+1:]
i += 1
return d
f = ""
for filename in sys.argv[1:]:
f += cstrip([l.decode("iso8859-1").strip() for l in open(filename, "rb")])
2007-08-22 21:13:33 +00:00
hash = hashlib.md5(f.encode()).hexdigest().lower()[16:]
2010-05-29 15:20:18 +00:00
# TODO: refactor hash that is equal to the 0.5 hash, remove when we
# TODO: remove when we don't need it any more
2011-01-03 11:50:38 +00:00
if hash == "026b8eceb4cdd369":
2010-05-29 15:20:18 +00:00
hash = "b67d1f1a1eea234e"
print('#define GAME_NETVERSION_HASH "%s"' % hash)