about summary refs log tree commit diff
path: root/scripts
diff options
context:
space:
mode:
authorTeetime <TeetimeTW@yahoo.de>2012-02-17 19:31:43 +0100
committerTeetime <TeetimeTW@yahoo.de>2012-02-17 19:31:43 +0100
commitfc99167e687ba688ce9306bbec7e801450c917be (patch)
treeb440f2568a98b4b6a8db17925a299142adead7fa /scripts
parent206e9adb9140c3c8963661f534703de33f8abe05 (diff)
parent44a47d4253a829abcf50dac5586fd9a351f0c66b (diff)
downloadzcatch-fc99167e687ba688ce9306bbec7e801450c917be.tar.gz
zcatch-fc99167e687ba688ce9306bbec7e801450c917be.zip
Merge branch 'master' into zCatch-Exp
Conflicts:
	src/engine/server.h
	src/engine/server/server.cpp
	src/engine/server/server.h
	src/engine/shared/network.h
	src/engine/shared/network_server.cpp
	src/game/server/player.h
Diffstat (limited to 'scripts')
-rw-r--r--scripts/build.py2
-rw-r--r--scripts/cmd5.py2
-rw-r--r--scripts/make_release.py73
-rw-r--r--scripts/update_localization.py91
4 files changed, 70 insertions, 98 deletions
diff --git a/scripts/build.py b/scripts/build.py
index 17911d84..ca23ae8b 100644
--- a/scripts/build.py
+++ b/scripts/build.py
@@ -12,7 +12,7 @@ if match != None:
 os.chdir('../')
 
 url_bam = "http://github.com/matricks/bam/zipball/master"
-url_teeworlds = "http://github.com/oy/teeworlds/zipball/master"
+url_teeworlds = "http://github.com/teeworlds/teeworlds/zipball/master"
 release_type = "server_release client_release"
 
 arguments = OptionParser()
diff --git a/scripts/cmd5.py b/scripts/cmd5.py
index 9b4804c7..5ac4cd45 100644
--- a/scripts/cmd5.py
+++ b/scripts/cmd5.py
@@ -30,6 +30,6 @@ for filename in sys.argv[1:]:
 
 hash = hashlib.md5(f).hexdigest().lower()[16:]
 #TODO 0.7: improve nethash creation
-if hash == "63d6e69c6025feff":
+if hash == "3dc531e4296de555":
 	hash = "626fce9a778df4d4"
 print('#define GAME_NETVERSION_HASH "%s"' % hash)
diff --git a/scripts/make_release.py b/scripts/make_release.py
index 32af2eee..80cbd35b 100644
--- a/scripts/make_release.py
+++ b/scripts/make_release.py
@@ -1,4 +1,10 @@
-import shutil, os, sys, zipfile
+import shutil, os, re, sys, zipfile
+if sys.version_info[0] == 2:
+	import urllib
+	url_lib = urllib
+elif sys.version_info[0] == 3:
+	import urllib.request
+	url_lib = urllib.request
 
 #valid_platforms = ["win32", "linux86", "linux86_64", "src"]
 
@@ -8,6 +14,7 @@ if len(sys.argv) != 3:
 	sys.exit(-1)
 
 name = "teeworlds"
+url_languages = "https://github.com/teeworlds/teeworlds-translation/zipball/master"
 version = sys.argv[1]
 platform = sys.argv[2]
 exe_ext = ""
@@ -40,6 +47,29 @@ if  platform == 'osx':
 	use_gz = 0
 	use_bundle = 1
 
+def fetch_file(url):
+	try:
+		print("trying %s" % url)
+		real_url = url_lib.urlopen(url).geturl()
+		local = real_url.split("/")
+		local = local[len(local)-1].split("?")
+		local = local[0]
+		url_lib.urlretrieve(real_url, local)
+		return local
+	except:
+		return False
+
+def unzip(filename, where):
+	try:
+		z = zipfile.ZipFile(filename, "r")
+	except:
+		return False
+	for name in z.namelist():
+                if "/data/languages/" in name:
+                        z.extract(name, where)
+	z.close()
+	return z.namelist()[0]
+
 def copydir(src, dst, excl=[]):
 	for root, dirs, files in os.walk(src, topdown=True):
 		if "/." in root or "\\." in root:
@@ -50,7 +80,15 @@ def copydir(src, dst, excl=[]):
 		for name in files:
 			if name[0] != '.':
 				shutil.copy(os.path.join(root, name), os.path.join(dst, root, name))
-				
+
+def clean():
+	print("*** cleaning ***")
+	try:
+                shutil.rmtree(package_dir)
+                shutil.rmtree(languages_dir)
+                os.remove(src_package_languages)
+	except: pass
+	
 package = "%s-%s-%s" %(name, version, platform)
 package_dir = package
 
@@ -58,6 +96,16 @@ print("cleaning target")
 shutil.rmtree(package_dir, True)
 os.mkdir(package_dir)
 
+print("download and extract languages")
+src_package_languages = fetch_file(url_languages)
+if not src_package_languages:
+        print("couldn't download languages")
+        sys.exit(-1)
+languages_dir = unzip(src_package_languages, ".")
+if not languages_dir:
+        print("couldn't unzip languages")
+        sys.exit(-1)
+
 print("adding files")
 shutil.copy("readme.txt", package_dir)
 shutil.copy("license.txt", package_dir)
@@ -67,6 +115,9 @@ shutil.copy("banmasters.cfg", package_dir)
 if include_data and not use_bundle:
 	os.mkdir(os.path.join(package_dir, "data"))
 	copydir("data", package_dir)
+	os.chdir(languages_dir)
+	copydir("data", "../"+package_dir)
+	os.chdir("..")
 	if platform[:3] == "win":
 		shutil.copy("other/config_directory.bat", package_dir)
 		shutil.copy("SDL.dll", package_dir)
@@ -84,9 +135,16 @@ if include_src:
 	shutil.copy("configure.lua", package_dir)
 
 if use_bundle:
-	os.system("lipo -create -output "+name+"_srv "+name+"_srv"+"_ppc "+name+"_srv"+"_x86")
-	os.system("lipo -create -output "+name+" "+name+"_ppc "+name+"_x86")
-	os.system("lipo -create -output serverlaunch serverlaunch_ppc serverlaunch_x86")
+	bins = [name, name+'_srv', 'serverlaunch']
+	platforms = ('x86', 'x86_64', 'ppc')
+	for bin in bins:
+		to_lipo = []
+		for p in platforms:
+			fname = bin+'_'+p
+			if os.path.isfile(fname):
+				to_lipo.append(fname)
+		if to_lipo:
+			os.system("lipo -create -output "+bin+" "+" ".join(to_lipo))
 
 	# create Teeworlds appfolder
 	clientbundle_content_dir = os.path.join(package_dir, "Teeworlds.app/Contents")
@@ -100,6 +158,9 @@ if use_bundle:
 	os.mkdir(clientbundle_framework_dir)
 	os.mkdir(os.path.join(clientbundle_resource_dir, "data"))
 	copydir("data", clientbundle_resource_dir)
+	os.chdir(languages_dir)
+	copydir("data", "../"+clientbundle_resource_dir)
+	os.chdir("..")
 	shutil.copy("other/icons/Teeworlds.icns", clientbundle_resource_dir)
 	shutil.copy(name+exe_ext, clientbundle_bin_dir)
 	os.system("cp -R /Library/Frameworks/SDL.framework " + clientbundle_framework_dir)
@@ -187,5 +248,7 @@ if use_dmg:
 	os.system("hdiutil create -srcfolder %s -volname Teeworlds -quiet %s_temp" % (package_dir, package))
 	os.system("hdiutil convert %s_temp.dmg -format UDBZ -o %s.dmg -quiet" % (package, package))
 	os.system("rm -f %s_temp.dmg" % package)
+
+clean()
 	
 print("done")
diff --git a/scripts/update_localization.py b/scripts/update_localization.py
deleted file mode 100644
index 08c1866e..00000000
--- a/scripts/update_localization.py
+++ /dev/null
@@ -1,91 +0,0 @@
-import os, re, sys
-match = re.search('(.*)/', sys.argv[0])
-if match != None:
-	os.chdir(match.group(1))
-os.chdir('../')
-
-source_exts = [".c", ".cpp", ".h"]
-
-def parse_source():
-	stringtable = {}
-	def process_line(line):
-		if 'Localize("'.encode() in line:
-			fields = line.split('Localize("'.encode(), 1)[1].split('"'.encode(), 1)
-			stringtable[fields[0]] = ""
-			process_line(fields[1])
-
-	for root, dirs, files in os.walk("src"):
-		for name in files:
-			filename = os.path.join(root, name)
-			
-			if os.sep + "external" + os.sep in filename:
-				continue
-			
-			if filename[-2:] in source_exts or filename[-4:] in source_exts:
-				for line in open(filename, "rb"):
-					process_line(line)
-
-	return stringtable
-
-def load_languagefile(filename):
-	f = open(filename, "rb")
-	lines = f.readlines()
-	f.close()
-
-	stringtable = {}
-
-	for i in range(0, len(lines)-1):
-		l = lines[i].strip()
-		if len(l) and not l[0:1] == "=".encode() and not l[0:1] == "#".encode():
-			stringtable[l] = lines[i+1][3:].rstrip()
-
-	return stringtable
-
-def generate_languagefile(outputfilename, srctable, loctable):
-	f = open(outputfilename, "wb")
-
-	num_items = 0
-	new_items = 0
-	old_items = 0
-
-	srctable_keys = []
-	for key in srctable:
-		srctable_keys.append(key)
-	srctable_keys.sort()
-
-	content = "\n##### translated strings #####\n\n".encode()
-	for k in srctable_keys:
-		if k in loctable and len(loctable[k]):
-			content += k + "\n== ".encode() + loctable[k] + "\n\n".encode()
-			num_items += 1
-
-	content += "##### needs translation #####\n\n".encode()
-	for k in srctable_keys:
-		if not k in loctable or len(loctable[k]) == 0:
-			content += k + "\n== \n\n".encode()
-			num_items += 1
-			new_items += 1
-
-	content += "##### old translations #####\n\n".encode()
-	for k in loctable:
-		if not k in srctable:
-			content += k + "\n== ".encode() + loctable[k] + "\n\n".encode()
-			num_items += 1
-			old_items += 1
-
-	f.write(content)
-	f.close()
-	print("%-40s %8d %8d %8d" % (outputfilename, num_items, new_items, old_items))
-
-srctable = parse_source()
-
-print("%-40s %8s %8s %8s" % ("filename", "total", "new", "old"))
-
-for filename in os.listdir("data/languages"):
-	if not ".txt" in filename:
-		continue
-	if filename == "index.txt":
-		continue
-
-	filename = "data/languages/" + filename
-	generate_languagefile(filename, srctable, load_languagefile(filename))