|
21 | 21 | import os
|
22 | 22 | import subprocess
|
23 | 23 |
|
24 |
| -parser = argparse.ArgumentParser(description='Generate core_version.h') |
25 |
| -parser.add_argument('-b', '--build_path', action='store', required=True, help='build.path variable') |
26 |
| -parser.add_argument('-p', '--platform_path', action='store', required=True, help='platform.path variable') |
27 |
| -parser.add_argument('-v', '--version', action='store', required=True, help='version variable') |
28 |
| - |
29 |
| -args = parser.parse_args() |
30 |
| - |
31 |
| -core = args.build_path + '/core' |
32 |
| -try: |
33 |
| - os.makedirs(core) |
34 |
| -except: |
35 |
| - pass |
36 |
| - |
37 |
| -out = open(core + '/core_version.h', "w") |
38 |
| - |
39 |
| -try: |
40 |
| - p = subprocess.Popen(['git', '--git-dir', args.platform_path + '/.git', 'rev-parse', '--short=8', 'HEAD'], stdout = subprocess.PIPE ) |
41 |
| - git_ver = '0x' + p.stdout.readlines()[0].strip() |
42 |
| - p = subprocess.Popen(['git', '--git-dir', args.platform_path + '/.git', 'describe', '--tags'], stdout = subprocess.PIPE ) |
43 |
| - git_desc = p.stdout.readlines()[0].strip() |
44 |
| -except: |
45 |
| - git_ver = '0xffffffff' |
46 |
| - git_desc = args.version |
47 |
| - |
48 |
| -out.write('#define ARDUINO_ESP8266_GIT_VER ' + git_ver + '\n') |
49 |
| -out.write('#define ARDUINO_ESP8266_GIT_DESC ' + git_desc + '\n') |
50 |
| - |
51 |
| -out.close() |
| 24 | + |
| 25 | +def generate(path, platform_path, git_ver="0xffffffff", git_desc="unspecified"): |
| 26 | + def git(*args): |
| 27 | + cmd = ["git", "-C", platform_path] |
| 28 | + cmd.extend(args) |
| 29 | + proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True) |
| 30 | + return proc.stdout.readlines()[0].strip() |
| 31 | + |
| 32 | + try: |
| 33 | + git_ver = git("rev-parse", "--short=8", "HEAD") |
| 34 | + git_desc = git("describe", "--tags") |
| 35 | + except: |
| 36 | + pass |
| 37 | + |
| 38 | + with open(path, "w") as out: |
| 39 | + out.write("#define ARDUINO_ESP8266_GIT_VER 0x{}\n".format(git_ver)) |
| 40 | + out.write("#define ARDUINO_ESP8266_GIT_DESC {}\n".format(git_desc)) |
| 41 | + |
| 42 | + |
| 43 | +if __name__ == "__main__": |
| 44 | + parser = argparse.ArgumentParser(description="Generate core_version.h") |
| 45 | + |
| 46 | + parser.add_argument( |
| 47 | + "-b", "--build_path", action="store", required=True, help="build.path variable" |
| 48 | + ) |
| 49 | + parser.add_argument( |
| 50 | + "-p", |
| 51 | + "--platform_path", |
| 52 | + action="store", |
| 53 | + required=True, |
| 54 | + help="platform.path variable", |
| 55 | + ) |
| 56 | + parser.add_argument( |
| 57 | + "-v", "--version", action="store", required=True, help="version variable" |
| 58 | + ) |
| 59 | + parser.add_argument("-i", "--include_dir", default="core") |
| 60 | + |
| 61 | + args = parser.parse_args() |
| 62 | + |
| 63 | + include_dir = os.path.join(args.build_path, args.include_dir) |
| 64 | + try: |
| 65 | + os.makedirs(include_dir) |
| 66 | + except: |
| 67 | + pass |
| 68 | + |
| 69 | + generate( |
| 70 | + os.path.join(include_dir, "core_version.h"), |
| 71 | + args.platform_path, |
| 72 | + git_desc=args.version, |
| 73 | + ) |
0 commit comments