#!/usr/bin/python3 # Copyright (c) 2017-2022, Mudita Sp. z.o.o. All rights reserved. # For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md # import required module import argparse import sys import json import logging log = logging.getLogger(__name__) logging.basicConfig(format='%(asctime)s [%(levelname)s]: %(message)s', level=logging.INFO) def get_databases_for_product(input_path, product) -> list: try: with open(input_path, 'r') as src: databases_json_data = json.load(src) return databases_json_data[product] except Exception as e: log.error(e) return [] def write_databases_to_json(output_path, databases) -> int: try: with open(output_path, 'r+') as dst: version_json_data = json.load(dst) version_json_data.update(databases) dst.seek(0) json.dump(version_json_data, dst, indent=4) return 0 except Exception as e: log.error(e) return -1 def main() -> int: parser = argparse.ArgumentParser(description='Append databases.json to version.json') parser.add_argument('--input_path', metavar='databases_json_path', type=str, help='path to databases.json file', required=True) parser.add_argument('--output_path', metavar='version_json_path', type=str, help='path to version.json file', required=True) parser.add_argument('--product', metavar='BellHybrid/PurePhone', type=str, help='product which database entries should be loaded', required=True) args = parser.parse_args() databases = get_databases_for_product(args.input_path, args.product) if not databases: return -1 ret = write_databases_to_json(args.output_path, databases) return ret if __name__ == "__main__": sys.exit(main())