blob: 591f58185f24b174b5dfbe1d84fdeb192bfcf1ec [file] [log] [blame]
Tang Cheng1aa15ee2012-09-06 10:12:23 +08001# -*- coding: utf-8
2
3import sys
4import os
5from zipfile import ZipFile, ZIP_DEFLATED
Tang Cheng02b96422012-12-20 14:04:04 +08006import distutils.util
Tang Cheng1aa15ee2012-09-06 10:12:23 +08007
8
Tang Cheng02b96422012-12-20 14:04:04 +08009def get_build_path():
10 os_name = distutils.util.get_platform()
11 version = sys.version_info
12 if isinstance(version, tuple):
13 os_ver = '%d.%d' % (version[0], version[1])
14 else:
15 os_ver = '%d.%d' % (version.major, version.minor)
16 return os.path.join('build', 'exe.%s-%s' % (os_name, os_ver))
17
18
19build_path = get_build_path()
Tang Cheng1aa15ee2012-09-06 10:12:23 +080020
21
22def _make_zip_file(args, dirname, names):
23 zip, build_dir, dist_version_name = args
24 # print "build dir : %s, %s" % (build_dir, dirname)
25 for file_name in names:
26 full_name = os.path.join(dirname, file_name)
27 if build_dir == dirname:
28 arcname = os.path.join(dist_version_name, file_name)
29 else:
30 d = dirname[len(build_dir) + 1:]
31 temp = os.path.join(dist_version_name, d)
32 arcname = os.path.join(temp, file_name)
33 zip.write(full_name, arcname)
34 print "zip file %s to %s" % (full_name, arcname)
35
36
37def make_dist(name, version, dist_dir='dist'):
38
Tang Cheng02b96422012-12-20 14:04:04 +080039 dist_version_name = "%s-%s-%s" % (name, version, distutils.util.get_platform())
Tang Cheng1aa15ee2012-09-06 10:12:23 +080040 dist_name = os.path.join(dist_dir, dist_version_name + '.zip')
41 print "Make zip file ...[%s]" % os.path.relpath(dist_name)
42 zip_file_name = os.path.basename(dist_name)
43 zip_file_name = os.path.join(dist_dir, zip_file_name)
44 if not os.path.exists(dist_dir):
45 os.mkdir(dist_dir)
46 zip = ZipFile(zip_file_name, 'w', ZIP_DEFLATED)
47 build_dir = os.path.realpath(build_path)
48 os.path.walk(build_dir, _make_zip_file, (zip, build_dir, dist_version_name))
Tang Cheng02b96422012-12-20 14:04:04 +080049 zip.close()