# turn the crank
import os, sys, shutil
from compileall import compile_dir
def main():
installer_dir=os.environ.get("installer")
if installer_dir is None:
print "Please set INSTALLER to point to the McMillan installer path"
return 1
this_dir = os.path.abspath(os.path.dirname(__file__))
if os.path.exists(os.path.join(this_dir, "buildspambayes_addin")):
shutil.rmtree(os.path.join(this_dir, "buildspambayes_addin"))
if os.path.exists(os.path.join(this_dir, "dist")):
shutil.rmtree(os.path.join(this_dir, "dist"))
rc = os.system("%s %s/Build.py %s/spambayes_addin.spec" % (sys.executable, installer_dir, this_dir))
if rc:
print "Installer build FAILED"
return 1
genpy = os.path.join(this_dir, "dist", "support", "gen_py")
# compile_all the gen_path
if not compile_dir(genpy, ddir="win32com/gen_py", quiet=1):
print "FAILED to build the gencache directory"
return 1
# remove the .py files
def _remover(arg, dirname, filenames):
for name in filenames:
if os.path.splitext(name)[1]=='.py':
os.remove(os.path.join(dirname, name))
os.path.walk(genpy, _remover, None)
if not os.path.isfile(os.path.join(genpy, "dicts.dat")):
print "EEEK - no gencache .dat file!"
return 1
# crank out the installer.
import win32api
iss_file = os.path.join(this_dir, "spambayes_addin.iss")
handle, compiler = win32api.FindExecutable(iss_file)
rc = os.system('"%s" /cc %s' % (compiler, iss_file))
if rc:
print "FAILED to build the final executable"
return 1
return 0
if __name__=='__main__':
main()
syntax highlighted by Code2HTML, v. 0.9.1