forked from extern/easydiffusion
54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import os
|
|
import argparse
|
|
import sys
|
|
import shutil
|
|
|
|
# The config file is in the same directory as this script
|
|
config_directory = os.path.dirname(__file__)
|
|
config_yaml = os.path.join(config_directory, "..", "config.yaml")
|
|
config_json = os.path.join(config_directory, "config.json")
|
|
|
|
parser = argparse.ArgumentParser(description='Get values from config file')
|
|
parser.add_argument('--default', dest='default', action='store',
|
|
help='default value, to be used if the setting is not defined in the config file')
|
|
parser.add_argument('key', metavar='key', nargs='+',
|
|
help='config key to return')
|
|
|
|
args = parser.parse_args()
|
|
|
|
config = None
|
|
|
|
# migrate the old config yaml location
|
|
config_legacy_yaml = os.path.join(config_directory, "config.yaml")
|
|
if os.path.isfile(config_legacy_yaml):
|
|
shutil.move(config_legacy_yaml, config_yaml)
|
|
|
|
if os.path.isfile(config_yaml):
|
|
from ruamel.yaml import YAML
|
|
yaml = YAML(typ='safe')
|
|
with open(config_yaml, 'r') as configfile:
|
|
try:
|
|
config = yaml.load(configfile)
|
|
except Exception as e:
|
|
print(e, file=sys.stderr)
|
|
elif os.path.isfile(config_json):
|
|
import json
|
|
with open(config_json, 'r') as configfile:
|
|
try:
|
|
config = json.load(configfile)
|
|
except Exception as e:
|
|
print(e, file=sys.stderr)
|
|
|
|
if config is None:
|
|
config = {}
|
|
|
|
for k in args.key:
|
|
if k in config:
|
|
config = config[k]
|
|
else:
|
|
if args.default != None:
|
|
print(args.default)
|
|
exit()
|
|
|
|
print(config)
|