import os import sys if os.name != "nt": sys.exit("Error: ship scripts require native Python 2.7. (wrong os.name)") if sys.version_info[0:2] != (2,7): sys.exit("Error: ship scripts require native Python 2.7. (wrong version)") import glob import shutil import subprocess from distutils.spawn import find_executable topDir = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) with open(topDir + "/VERSION.txt", "rt") as f: winptyVersion = f.read().strip() def rmrf(patterns): for pattern in patterns: for path in glob.glob(pattern): if os.path.isdir(path) and not os.path.islink(path): print "+ rm -r " + path sys.stdout.flush() shutil.rmtree(path) elif os.path.isfile(path): print "+ rm " + path sys.stdout.flush() os.remove(path) def mkdir(path): if not os.path.isdir(path): os.makedirs(path) def requireExe(name, guesses): if find_executable(name) is None: for guess in guesses: if os.path.exists(guess): newDir = os.path.dirname(guess) print "Adding " + newDir + " to Path to provide " + name os.environ["Path"] = newDir + ";" + os.environ["Path"] ret = find_executable(name) if ret is None: sys.exit("Error: required EXE is missing from Path: " + name) return ret requireExe("git.exe", [ "C:\\Program Files\\Git\\cmd\\git.exe", "C:\\Program Files (x86)\\Git\\cmd\\git.exe" ]) commitHash = subprocess.check_output(["git.exe", "rev-parse", "HEAD"]).decode().strip() defaultPathEnviron = "C:\\Windows\\System32;C:\\Windows"