OSDN Git Service

UIListのバグを修正
[mmo/main.git] / package.py
1 import os, os.path
2 import subprocess
3 import zipfile
4 import re
5
6 base_dir = os.path.dirname(__file__)
7 subprocess.call('Devenv "' + os.path.join(base_dir, 'mmo.sln') + '" /build release', shell=True)
8
9 version_header = open(os.path.join(base_dir, 'client/version.hpp')).read()
10 ver_major =    re.search("#define MMO_VERSION_MAJOR\s+(\d+)", version_header).group(1)
11 ver_minor =    re.search("#define MMO_VERSION_MINOR\s+(\d+)", version_header).group(1)
12 ver_revision = re.search("#define MMO_VERSION_REVISION\s+(\d+)", version_header).group(1)
13
14 ver_text = ver_major + "." + ver_minor + "." + ver_revision
15
16 build_version_path = os.path.join(base_dir, 'client/buildversion.hpp')
17
18 if os.path.exists(build_version_path):
19     build_version_header = open(build_version_path).read()
20     ver_build =    re.search("#define MMO_VERSION_BUILD\s+(\d+)", build_version_header).group(1)
21     ver_text += "_" + ver_build
22
23 zip_path = os.path.join(base_dir, "mmo-" + ver_text + ".zip")
24 zip = zipfile.ZipFile(zip_path, 'w', zipfile.ZIP_DEFLATED)
25
26 bin_path = os.path.join(base_dir, 'client/bin/')
27
28
29 zip.write(os.path.join(base_dir, 'release/client.exe'), 'client.exe')
30
31 zip.write(os.path.join(base_dir, 'readme.txt'), 'readme.txt')
32 zip.write(os.path.join(base_dir, 'license.txt'), 'license.txt')
33 zip.write(os.path.join(base_dir, 'mmd.txt'), 'mmd.txt')
34
35 zip.write(os.path.join(base_dir, 'server/config.json'), 'server/config.json')
36
37 zip.write(os.path.join(bin_path, 'config.json'), 'config.json')
38 zip.write(os.path.join(bin_path, 'server/server.exe'), 'server/server.exe')
39
40 for root, dirs, files in os.walk(os.path.join(bin_path, 'cards')):
41     for file in files:
42         absolute_path = os.path.join(root, file)
43         relative_path = os.path.relpath(absolute_path, bin_path)
44         zip.write(absolute_path, relative_path)
45         
46 for root, dirs, files in os.walk(os.path.join(bin_path, 'resources')):
47     for file in files:
48         absolute_path = os.path.join(root, file)
49         relative_path = os.path.relpath(absolute_path, bin_path)
50         zip.write(absolute_path, relative_path)
51         
52 zip.close()