普通文本  |  62行  |  1.89 KB


#When run on (my) windows box, this builds and cleans everything in
#preparation for a release.

import os
import sys

#Replace version strings
if len(sys.argv)>1:
    oldVersion = sys.argv[1]
    newVersion = sys.argv[2]
    query = raw_input("Replace %s with %s?: " % (oldVersion, newVersion))
    if query == "y":
        #First, scan through and make sure the replacement is possible
        for filename in ("setup.py", "tlslite\\__init__.py", "scripts\\tls.py", "scripts\\tlsdb.py"):
            s = open(filename, "rU").read()
            x = s.count(oldVersion)
            if filename.endswith("__init__.py"):
                if x != 2:
                    print "Error, old version appears in %s %s times" % (filename, x)
                    sys.exit()
            else:
                if x != 1:
                    print "Error, old version appears in %s %s times" % (filename, x)
                    sys.exit()

        #Then perform it
        for filename in ("setup.py", "tlslite\\__init__.py", "scripts\\tls.py", "scripts\\tlsdb.py"):
            os.system("copy %s .." % filename) #save a backup copy in case something goes awry
            s = open(filename, "r").read()
            f = open(filename, "w")
            f.write(s.replace(oldVersion, newVersion))
            f.close()


#Make windows installers
os.system("del installers\*.exe")

#Python 2.3
os.system("rmdir build /s /q")
os.system("python23 setup.py bdist_wininst -o")
os.system("copy dist\* installers")

#Python 2.4
os.system("rmdir build /s /q")
os.system("python24 setup.py bdist_wininst -o")
os.system("copy dist\* installers")


#Make documentation
os.system("python23 c:\\devtools\\python23\\scripts\\epydoc.py --html -o docs tlslite")

#Delete excess files
os.system("del tlslite\\*.pyc")
os.system("del tlslite\\utils\\*.pyc")
os.system("del tlslite\\integration\\*.pyc")
os.system("rmdir build /s /q")
os.system("rmdir dist /s /q")