Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 1 | import subprocess as sp |
| 2 | import sys |
Jamie Madill | 9c4b24a | 2014-06-12 13:41:17 -0400 | [diff] [blame] | 3 | import os |
Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 4 | |
Jamie Madill | 9c4b24a | 2014-06-12 13:41:17 -0400 | [diff] [blame] | 5 | # Usage: commit_id.py check <angle_dir> (checks if git is present) |
| 6 | # Usage: commit_id.py gen <angle_dir> <file_to_write> (generates commit id) |
Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 7 | |
Jamie Madill | 9c4b24a | 2014-06-12 13:41:17 -0400 | [diff] [blame] | 8 | def grab_output(command, cwd): |
| 9 | return sp.Popen(command, stdout=sp.PIPE, shell=True, cwd=cwd).communicate()[0].strip() |
| 10 | |
| 11 | operation = sys.argv[1] |
| 12 | cwd = sys.argv[2] |
| 13 | |
| 14 | if operation == 'check': |
| 15 | index_path = os.path.join(cwd, '.git', 'index') |
| 16 | if os.path.exists(index_path): |
| 17 | print("1") |
| 18 | else: |
| 19 | print("0") |
| 20 | sys.exit(0) |
| 21 | |
| 22 | output_file = sys.argv[3] |
Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 23 | commit_id_size = 12 |
| 24 | |
| 25 | try: |
Jamie Madill | 9c4b24a | 2014-06-12 13:41:17 -0400 | [diff] [blame] | 26 | commit_id = grab_output('git rev-parse --short=%d HEAD' % commit_id_size, cwd) |
| 27 | commit_date = grab_output('git show -s --format=%ci HEAD', cwd) |
Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 28 | except: |
| 29 | commit_id = 'invalid-hash' |
| 30 | commit_date = 'invalid-date' |
| 31 | |
Jamie Madill | 9c4b24a | 2014-06-12 13:41:17 -0400 | [diff] [blame] | 32 | hfile = open(output_file, 'w') |
Jamie Madill | 42f529e | 2014-02-24 12:45:32 -0500 | [diff] [blame] | 33 | |
| 34 | hfile.write('#define ANGLE_COMMIT_HASH "%s"\n' % commit_id) |
| 35 | hfile.write('#define ANGLE_COMMIT_HASH_SIZE %d\n' % commit_id_size) |
| 36 | hfile.write('#define ANGLE_COMMIT_DATE "%s"\n' % commit_date) |
| 37 | |
| 38 | hfile.close() |