Source code for rez.cli.config

# SPDX-License-Identifier: Apache-2.0
# Copyright Contributors to the Rez Project


'''
Print current rez settings.
'''
from __future__ import print_function

import json


[docs]def setup_parser(parser, completions=False): parser.add_argument( "--json", dest="json", action="store_true", help="Output dict/list field values as JSON. Useful for setting " "REZ_*_JSON environment variables. Ignored if FIELD not given") parser.add_argument( "--search-list", dest="search_list", action="store_true", help="list the config files searched") parser.add_argument( "--source-list", dest="source_list", action="store_true", help="list the config files sourced") FIELD_action = parser.add_argument( "FIELD", type=str, nargs='?', help="print the value of a specific setting") if completions: from rez.cli._complete_util import ConfigCompleter FIELD_action.completer = ConfigCompleter
[docs]def command(opts, parser, extra_arg_groups=None): from rez.config import config from rez.utils.yaml import dump_yaml from rez.utils.data_utils import convert_json_safe if opts.search_list: for filepath in config.filepaths: print(filepath) return if opts.source_list: for filepath in config.sourced_filepaths: print(filepath) return data = config.data if opts.FIELD: keys = opts.FIELD.split('.') while keys: key = keys[0] keys = keys[1:] try: data = data[key] except KeyError: raise ValueError("no such setting: %r" % opts.FIELD) if isinstance(data, (dict, list)): if opts.json: txt = json.dumps(convert_json_safe(data)) else: txt = dump_yaml(data) print(txt.strip()) else: print(data)