3
# A convenience script to generate a deployment archive name of the form
4
# FreeCAD_{Major Version Number}.{Minor Version Number}-{Git Revision Count}.{Git Short SHA}-{OS}-{Arch}
6
import sys, getopt, platform
9
def deserializeVersionHeader(path):
12
dat = open(path, "r").readlines()
14
print("Unable to open ", path)
19
if len(tokens) > 1 and tokens[0].lower() == "#define":
20
version[tokens[1]] = tokens[2].replace('"', "")
26
OSAbbrev = {"Windows": "WIN", "Darwin": "OSX"}
30
sys.stderr.write("Usage: archiveNameFromVersion <path to Version.h> [--git-SHA=]\n")
33
opts, args = getopt.getopt(sys.argv[2:], "g:", ["git-SHA="])
34
except getopt.GetoptError:
38
if o in ("-g", "--git-SHA"):
41
version = deserializeVersionHeader(sys.argv[1])
43
version["FCRepositoryHash"] = SHA
46
"FreeCAD_{Major}.{Minor}-{RevCount}.{GitShortSHA}-{OS}-{Arch}".format(
47
Major=version["FCVersionMajor"],
48
Minor=version["FCVersionMinor"],
49
RevCount=version["FCRevision"],
50
GitShortSHA=version["FCRepositoryHash"][0:7],
51
OS=OSAbbrev.get(platform.system(), "LIN"),
52
Arch=platform.machine(),
57
if __name__ == "__main__":