Files
create/src/Tools/ArchiveNameFromVersionHeader.py
Bruce B. Lacey b18a5f1396 Improved Mac OS X Application Packaging.
1.  Set python dependency paths in Application Bundle adhering the Homebrew convention of installing them in prefix/libexec
   2.  Add appdmg configuration to produce an os x disk image for FreeCAD application distribution
   3.  Added a Tools convenience script to produce an archive name from a serialized Version.h file using the convention FreeCAD_{Major Version Number}.{Minor Version Number}-{Git Revision Count}.{Git Short SHA}-{OS}-{Arch}
2016-03-07 20:49:58 -08:00

54 lines
1.5 KiB
Python

#! python
###
# A convenience script to generate a deployment archive name of the form
# FreeCAD_{Major Version Number}.{Minor Version Number}-{Git Revision Count}.{Git Short SHA}-{OS}-{Arch}
#
import sys,string,getopt,platform
def deserializeVersionHeader(path):
version = {}
try:
dat = open(path, 'r').readlines()
except IOError:
print 'Unable to open ', path
raise
for l in dat:
tokens = l.split()
if len(tokens) > 1 and tokens[0].lower() == '#define':
version[tokens[1]] = tokens[2].replace('"',"")
return version
def main():
OSAbbrev = {'Windows' : 'WIN', 'Darwin' : 'OSX'}
SHA = None
if(len(sys.argv) < 2):
sys.stderr.write("Usage: archiveNameFromVersion <path to Version.h> [--git-SHA=]\n")
try:
opts, args = getopt.getopt(sys.argv[2:], "g:", ["git-SHA="])
except getopt.GetoptError:
pass
for o, a in opts:
if o in ("-g", "--git-SHA"):
SHA = a
version = deserializeVersionHeader(sys.argv[1])
if SHA:
version['FCRepositoryHash'] = SHA
print 'FreeCAD_{Major}.{Minor}-{RevCount}.{GitShortSHA}-{OS}-{Arch}'.format(
Major=version['FCVersionMajor'],
Minor=version['FCVersionMinor'],
RevCount=version['FCRevision'],
GitShortSHA=version['FCRepositoryHash'][0:7],
OS=OSAbbrev.get(platform.system(), 'LIN'),
Arch=platform.machine())
if __name__ == "__main__":
main()