# Copyright Bruno da Silva de Oliveira 2006. Distributed under the Boost # Software License, Version 1.0. (See accompanying # file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) import os import sys import shutil import fnmatch from zipfile import ZipFile, ZIP_DEFLATED def findfiles(directory, mask): def visit(files, dir, names): for name in names: if fnmatch.fnmatch(name, mask): files.append(os.path.join(dir, name)) files = [] os.path.walk(directory, visit, files) return files def main(): # test if PyXML is installed try: import _xmlplus.parsers.expat pyxml = '--includes _xmlplus.parsers.expat' except ImportError: pyxml = '' # create exe status = os.system('python setup.py py2exe %s >& build.log' % pyxml) if status != 0: raise RuntimeError, 'Error creating EXE' # create distribution import pyste version = pyste.__VERSION__ zip = ZipFile('pyste-%s.zip' % version, 'w', ZIP_DEFLATED) # include the base files dist_dir = 'dist/pyste' for basefile in os.listdir(dist_dir): zip.write(os.path.join(dist_dir, basefile), os.path.join('pyste', basefile)) # include documentation for doc_file in findfiles('../doc', '*.*'): dest_name = os.path.join('pyste/doc', doc_file[3:]) zip.write(doc_file, dest_name) zip.write('../index.html', 'pyste/doc/index.html') zip.close() # cleanup os.remove('build.log') shutil.rmtree('build') shutil.rmtree('dist') if __name__ == '__main__': sys.path.append('../src') main()