6 base_dir = os.path.dirname(__file__)
7 subprocess.call('Devenv "' + os.path.join(base_dir, 'mmo.sln') + '" /build release', shell=True)
9 def make_full_package(model = True):
10 version_header = open(os.path.join(base_dir, 'client/version.hpp')).read()
11 ver_major = re.search("#define MMO_VERSION_MAJOR\s+(\d+)", version_header).group(1)
12 ver_minor = re.search("#define MMO_VERSION_MINOR\s+(\d+)", version_header).group(1)
13 ver_revision = re.search("#define MMO_VERSION_REVISION\s+(\d+)", version_header).group(1)
15 ver_text = ver_major + "." + ver_minor + "." + ver_revision
17 build_version_path = os.path.join(base_dir, 'client/buildversion.hpp')
19 if os.path.exists(build_version_path):
20 build_version_header = open(build_version_path).read()
21 ver_build = re.search("#define MMO_VERSION_BUILD\s+(\d+)", build_version_header).group(1)
22 ver_text += "_" + ver_build
25 zip_path = os.path.join(base_dir, "mmo-" + ver_text + ".zip")
27 zip_path = os.path.join(base_dir, "mmo-nomodel-" + ver_text + ".zip")
29 zip = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
31 bin_path = os.path.join(base_dir, 'client/bin/')
33 zip.write(os.path.join(base_dir, 'release/client.exe'), 'client.exe')
34 zip.write(os.path.join(base_dir, 'readme.txt'), 'readme.txt')
35 zip.write(os.path.join(base_dir, 'license.txt'), 'license.txt')
36 zip.write(os.path.join(base_dir, 'mmd.txt'), 'mmd.txt')
38 zip.write(os.path.join(bin_path, 'server/config.json'), 'server/config.json')
39 zip.write(os.path.join(bin_path, 'server/channels/ch000/config.json'), 'server/channels/ch000/config.json')
41 zip.write(os.path.join(bin_path, 'config.json'), 'config.json')
42 zip.write(os.path.join(bin_path, 'server/server.exe'), 'server/server.exe')
44 for root, dirs, files in os.walk(os.path.join(bin_path, 'widgets')):
46 absolute_path = os.path.join(root, file)
47 relative_path = os.path.relpath(absolute_path, bin_path)
48 zip.write(absolute_path, relative_path)
51 for root, dirs, files in os.walk(os.path.join(bin_path, 'models')):
53 absolute_path = os.path.join(root, file)
54 relative_path = os.path.relpath(absolute_path, bin_path)
55 zip.write(absolute_path, relative_path)
57 zip.writestr('models/', '')
59 for root, dirs, files in os.walk(os.path.join(bin_path, 'motions')):
61 absolute_path = os.path.join(root, file)
62 relative_path = os.path.relpath(absolute_path, bin_path)
63 zip.write(absolute_path, relative_path)
65 for root, dirs, files in os.walk(os.path.join(bin_path, 'system')):
67 absolute_path = os.path.join(root, file)
68 relative_path = os.path.relpath(absolute_path, bin_path)
69 zip.write(absolute_path, relative_path)
71 zip.writestr('music/', '')
72 zip.writestr('se/', '')
76 def make_server_package():
77 version_header = open(os.path.join(base_dir, 'server/version.hpp')).read()
78 ver_major = re.search("#define MMO_VERSION_MAJOR\s+(\d+)", version_header).group(1)
79 ver_minor = re.search("#define MMO_VERSION_MINOR\s+(\d+)", version_header).group(1)
80 ver_revision = re.search("#define MMO_VERSION_REVISION\s+(\d+)", version_header).group(1)
82 ver_text = ver_major + "." + ver_minor + "." + ver_revision
84 build_version_path = os.path.join(base_dir, 'server/buildversion.hpp')
86 if os.path.exists(build_version_path):
87 build_version_header = open(build_version_path).read()
88 ver_build = re.search("#define MMO_VERSION_BUILD\s+(\d+)", build_version_header).group(1)
89 ver_text += "_" + ver_build
91 zip_path = os.path.join(base_dir, "mmo-server-" + ver_text + ".zip")
92 zip = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
94 zip.write(os.path.join(base_dir, 'license.txt'), 'license.txt')
95 zip.write(os.path.join(base_dir, 'server/readme.txt'), 'readme.txt')
97 bin_path = os.path.join(base_dir, 'client/bin/')
98 zip.write(os.path.join(bin_path, 'server/server.exe'), 'server.exe')
99 zip.write(os.path.join(bin_path, 'server/config.json'), 'config.json')
100 zip.write(os.path.join(bin_path, 'server/channels/ch000/config.json'), 'channels/ch000/config.json')
104 make_full_package(True);
105 make_full_package(False);
106 make_server_package();