diff options
| author | Teetime <TeetimeTW@yahoo.de> | 2012-02-17 19:31:43 +0100 |
|---|---|---|
| committer | Teetime <TeetimeTW@yahoo.de> | 2012-02-17 19:31:43 +0100 |
| commit | fc99167e687ba688ce9306bbec7e801450c917be (patch) | |
| tree | b440f2568a98b4b6a8db17925a299142adead7fa /scripts | |
| parent | 206e9adb9140c3c8963661f534703de33f8abe05 (diff) | |
| parent | 44a47d4253a829abcf50dac5586fd9a351f0c66b (diff) | |
| download | zcatch-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.py | 2 | ||||
| -rw-r--r-- | scripts/cmd5.py | 2 | ||||
| -rw-r--r-- | scripts/make_release.py | 73 | ||||
| -rw-r--r-- | scripts/update_localization.py | 91 |
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)) |