linuxOS_D21X/tools/scripts/get_image_cfg.py
2024-11-29 16:33:21 +08:00

71 lines
1.9 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# SPDX-License-Identifier: Apache-2.0
#
# Copyright (C) 2021 ArtInChip Technology Co., Ltd
# Dehuang Wu <dehuang.wu@artinchip.com>
#
# This script is a helper utility to get configuration value from image_cfg.json
import os
import sys
import argparse
import image_cfg_parser
def get_cfg_from_json(cfgfile, nodepath):
cfg = image_cfg_parser.parse_image_cfg(cfgfile)
if cfg == None:
sys.exit(1)
nodes = nodepath.split('/')
if len(nodes) <= 1:
print('Please provide node path.')
sys.exit(1)
dnode = cfg
for n in nodes:
if n not in dnode:
print(n + " is not exist")
sys.exit(1)
dnode = dnode[n]
ret = ''
if isinstance(dnode, dict):
print('Not support to get dict object')
sys.exit(1)
elif isinstance(dnode, list):
ret = ','.join(dnode)
elif isinstance(dnode, str):
ret = dnode
else:
ret = str(dnode)
return ret
# The purpose of this script is get configuration value from image_cfg.json,
# It is useful for bash shell.
#
# The script accepts two arguments:
# --config: image_cfg.json file path
# --path: the configuration path, e.g. "image/info/media/type"
# Return value will be printed to shell in string
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-c", "--config", type=str,
help="image configuration file name")
parser.add_argument("-p", "--path", type=str,
help="configuration node path")
args = parser.parse_args()
if args.config == None:
print('Error, option --config is required.')
sys.exit(1)
# If user not specified data directory, use current directory as default
if args.path== None:
print('Error, option --path is required.')
sys.exit(1)
ret = get_cfg_from_json(args.config, args.path)
print(ret)