# -*- coding: utf-8 | |
import sys | |
import os | |
from zipfile import ZipFile, ZIP_DEFLATED | |
if sys.platform == 'win32': | |
build_path = 'build/exe.win32-2.6' | |
else: | |
build_path = "build/exe" | |
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" % (name, version) | |
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() |