blob: 591f58185f24b174b5dfbe1d84fdeb192bfcf1ec [file] [log] [blame]
# -*- coding: utf-8
import sys
import os
from zipfile import ZipFile, ZIP_DEFLATED
import distutils.util
def get_build_path():
os_name = distutils.util.get_platform()
version = sys.version_info
if isinstance(version, tuple):
os_ver = '%d.%d' % (version[0], version[1])
else:
os_ver = '%d.%d' % (version.major, version.minor)
return os.path.join('build', 'exe.%s-%s' % (os_name, os_ver))
build_path = get_build_path()
def _make_zip_file(args, dirname, names):
zip, build_dir, dist_version_name = args
# print "build dir : %s, %s" % (build_dir, dirname)
for file_name in names:
full_name = os.path.join(dirname, file_name)
if build_dir == dirname:
arcname = os.path.join(dist_version_name, file_name)
else:
d = dirname[len(build_dir) + 1:]
temp = os.path.join(dist_version_name, d)
arcname = os.path.join(temp, file_name)
zip.write(full_name, arcname)
print "zip file %s to %s" % (full_name, arcname)
def make_dist(name, version, dist_dir='dist'):
dist_version_name = "%s-%s-%s" % (name, version, distutils.util.get_platform())
dist_name = os.path.join(dist_dir, dist_version_name + '.zip')
print "Make zip file ...[%s]" % os.path.relpath(dist_name)
zip_file_name = os.path.basename(dist_name)
zip_file_name = os.path.join(dist_dir, zip_file_name)
if not os.path.exists(dist_dir):
os.mkdir(dist_dir)
zip = ZipFile(zip_file_name, 'w', ZIP_DEFLATED)
build_dir = os.path.realpath(build_path)
os.path.walk(build_dir, _make_zip_file, (zip, build_dir, dist_version_name))
zip.close()