~aleteoryx/muditaos

ref: sign_test muditaos/tools/add_dbs_to_version_json.py -rw-r--r-- 2.1 KiB
a217eeb3 — Dawid Wojtas [BH-2024] Fix lack of alarm directory after updating software 1 year, 5 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/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())