You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.6 KiB
56 lines
1.6 KiB
#!/usr/bin/env python |
|
''' |
|
Add git hashes to .px4 file for PX4/Pixhawk build |
|
Written by Jon Challinger January 2015 |
|
''' |
|
|
|
import json |
|
import sys |
|
import os |
|
import subprocess |
|
import argparse |
|
|
|
parser = argparse.ArgumentParser() |
|
|
|
parser.add_argument('input_file') |
|
parser.add_argument('output_file') |
|
|
|
parser.add_argument('--ardupilot') |
|
parser.add_argument('--px4') |
|
parser.add_argument('--nuttx') |
|
parser.add_argument('--uavcan') |
|
|
|
args = parser.parse_args() |
|
|
|
f = open(args.input_file,'r') |
|
fw_json = json.load(f) |
|
f.close() |
|
|
|
if args.ardupilot is not None: |
|
try: |
|
fw_json["ardupilot_git_hash"] = subprocess.check_output(["git", "--git-dir", os.path.join(args.ardupilot,".git"), "rev-parse", "HEAD"]).strip().decode('ascii') |
|
except: |
|
print("Failed to get apm hash") |
|
|
|
if args.px4 is not None: |
|
try: |
|
fw_json["px4_git_hash"] = subprocess.check_output(["git", "--git-dir", os.path.join(args.px4,".git"), "rev-parse", "HEAD"]).strip().decode('ascii') |
|
except: |
|
print("Failed to get px4 hash") |
|
|
|
if args.nuttx is not None: |
|
try: |
|
fw_json["nuttx_git_hash"] = subprocess.check_output(["git", "--git-dir", os.path.join(args.nuttx,".git"), "rev-parse", "HEAD"]).strip().decode('ascii') |
|
except: |
|
print("Failed to get nuttx hash") |
|
|
|
if args.uavcan is not None: |
|
try: |
|
fw_json["uavcan_git_hash"] = subprocess.check_output(["git", "--git-dir", os.path.join(args.uavcan,".git"), "rev-parse", "HEAD"]).strip().decode('ascii') |
|
except: |
|
print("Failed to get uavcan hash") |
|
|
|
f=open(args.output_file,'w') |
|
json.dump(fw_json,f,indent=4) |
|
f.truncate() |
|
f.close()
|
|
|