summaryrefslogtreecommitdiff
path: root/util/signer/pmjp.py
diff options
context:
space:
mode:
Diffstat (limited to 'util/signer/pmjp.py')
-rwxr-xr-xutil/signer/pmjp.py53
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])