diff options
Diffstat (limited to 'util/signer/pmjp.py')
-rwxr-xr-x | util/signer/pmjp.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/util/signer/pmjp.py b/util/signer/pmjp.py new file mode 100755 index 0000000000..92e3db035c --- /dev/null +++ b/util/signer/pmjp.py @@ -0,0 +1,53 @@ +#!/usr/bin/python +# Copyright 2017 The Chromium OS Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +"""Poor man's JSON parser. + +This module reads the input JSON file, retrieves from it some name/value pairs +and generates a .h file to allow a C code use the definitions. + +The JSON file name is required to be passed in in the command line, the nodes +this script pays attention to are included in required_keys tuple below. +""" + +import json +import sys + +required_keys = ('epoch', 'major', 'minor') + + +def main(json_file_name): + # get rid of the comments + json_text = [] + h_file_text = [''' +/* + * Copyright %d The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +/* This file was autogenerated, do not edit. */ +''',] + + json_file = open(json_file_name, 'r') + for line in json_file.read().splitlines(): + json_text.append(line.split('//')[0]) + + j = json.loads('\n'.join(json_text)) + + for key in required_keys: + if key in j.keys(): + value = j[key] + else: + value = '0' + + h_file_text.append('#define MANIFEST_%s %s' % (key.upper(), value)) + + h_file_text.append('') + return '\n'.join(h_file_text) + + +if __name__ == '__main__': + print main(sys.argv[1]) |