FreeCAD

Форк
0
/
ArchiveNameFromVersionHeader.py 
58 строк · 1.5 Кб
1
#! python
2
###
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}
5
#
6
import sys, getopt, platform
7

8

9
def deserializeVersionHeader(path):
10
    version = {}
11
    try:
12
        dat = open(path, "r").readlines()
13
    except IOError:
14
        print("Unable to open ", path)
15
        raise
16

17
    for l in dat:
18
        tokens = l.split()
19
        if len(tokens) > 1 and tokens[0].lower() == "#define":
20
            version[tokens[1]] = tokens[2].replace('"', "")
21

22
    return version
23

24

25
def main():
26
    OSAbbrev = {"Windows": "WIN", "Darwin": "OSX"}
27
    SHA = None
28

29
    if len(sys.argv) < 2:
30
        sys.stderr.write("Usage:  archiveNameFromVersion <path to Version.h> [--git-SHA=]\n")
31

32
    try:
33
        opts, args = getopt.getopt(sys.argv[2:], "g:", ["git-SHA="])
34
    except getopt.GetoptError:
35
        pass
36

37
    for o, a in opts:
38
        if o in ("-g", "--git-SHA"):
39
            SHA = a
40

41
    version = deserializeVersionHeader(sys.argv[1])
42
    if SHA:
43
        version["FCRepositoryHash"] = SHA
44

45
    print(
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(),
53
        )
54
    )
55

56

57
if __name__ == "__main__":
58
    main()
59

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.