diff --git a/build.xml b/build.xml index 1bce8c4dd7..b2efeb098a 100644 --- a/build.xml +++ b/build.xml @@ -53,6 +53,7 @@ + @@ -90,7 +91,30 @@ - + + + + + + + + + + + + + + + + + + + + + + + + @@ -98,51 +122,41 @@ - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + + + + + + + + + + + + + + + - + @@ -157,6 +171,7 @@ + @@ -178,13 +193,12 @@ - - - + + - - + + @@ -201,11 +215,11 @@ - + - + @@ -288,6 +302,17 @@ + + + + + + + + + + + diff --git a/generatechangedfilelist.py b/generatechangedfilelist.py index cecb416e25..a5ddb48673 100644 --- a/generatechangedfilelist.py +++ b/generatechangedfilelist.py @@ -1,8 +1,5 @@ import sys import os -import commands -import fnmatch -import re import subprocess, shlex mcp_root = os.path.abspath(sys.argv[1]) @@ -16,29 +13,16 @@ def cmdsplit(args): def main(): list_file = os.path.abspath(sys.argv[2]) - prelist = os.path.join(mcp_root,"temp","server.md5") - postlist = os.path.join(mcp_root,"temp","server_reobf.md5") - cmd = 'diff --unchanged-group-format='' --old-group-format='' --new-group-format=\'%%>\' --changed-group-format=\'%%>\' %s %s' % (prelist, postlist) - process = subprocess.Popen(cmdsplit(cmd), stdout=subprocess.PIPE, bufsize=-1) - difflist,_= process.communicate() - srg_data = parse_srg(os.path.join(mcp_root,"temp","server_rg.srg")) - classes = {} - for row in srg_data['CL']: - classes[row['deobf_name']] = row['obf_name'] - with open(list_file, 'w') as fh: - for diff in difflist.splitlines(): - diffrow=diff.strip().split() - clazz=diffrow[0] - if clazz in classes: - clazz=classes[clazz] - if clazz.startswith("net/minecraft/src/"): - clazz=clazz[len("net/minecraft/src/"):] - fh.write("minecraft_server/%s.class\n" %(clazz)) - - prelist = os.path.join(mcp_root,"temp","client.md5") - postlist = os.path.join(mcp_root,"temp","client_reobf.md5") - cmd = 'diff --unchanged-group-format='' --old-group-format='' --new-group-format=\'%%>\' --changed-group-format=\'%%>\' %s %s' % (prelist, postlist) + write_changed(fh, os.path.join(mcp_root,"temp","client.md5"), os.path.join(mcp_root,"temp","client_reobf.md5"), 'minecraft') + write_changed(fh, os.path.join(mcp_root,"temp","server.md5"), os.path.join(mcp_root,"temp","server_reobf.md5"), 'minecraft_server') + +def write_changed(fh, pre, post, name): + if not os.path.isfile(pre) or not os.path.isfile(post): + print 'MD5s Missing! Can not extract %s changed files' % name + return + + cmd = 'diff --unchanged-group-format='' --old-group-format='' --new-group-format=\'%%>\' --changed-group-format=\'%%>\' %s %s' % (pre, post) process = subprocess.Popen(cmdsplit(cmd), stdout=subprocess.PIPE, bufsize=-1) difflist,_= process.communicate() srg_data = parse_srg(os.path.join(mcp_root,"temp","client_rg.srg")) @@ -46,17 +30,14 @@ def main(): for row in srg_data['CL']: classes[row['deobf_name']] = row['obf_name'] - with open(list_file, 'a') as fh: - for diff in difflist.splitlines(): + for diff in difflist.splitlines(): diffrow=diff.strip().split() clazz=diffrow[0] if clazz in classes: - clazz=classes[clazz] + clazz=classes[clazz] if clazz.startswith("net/minecraft/src/"): - clazz=clazz[len("net/minecraft/src/"):] - fh.write("minecraft/%s.class\n" %(clazz)) - - + clazz=clazz[len("net/minecraft/src/"):] + fh.write("%s/%s.class\n" %(name,clazz)) if __name__ == '__main__': main()