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()