1
Fork 0

Added get and set commands for user config

This commit is contained in:
Jake Howard 2015-12-03 22:33:04 +00:00
parent cc4cf0feda
commit a083894c57
2 changed files with 39 additions and 9 deletions

View file

@ -13,3 +13,20 @@ def show(key):
key = " ".join(key) key = " ".join(key)
print(config.get(key)) print(config.get(key))
return 0 return 0
@cli.command('set')
@click.argument('key', nargs=1)
@click.argument('value', nargs=-1)
def set(key, value):
key = " ".join(key)
status = config.set(key, value)
if status == "SUCCESS":
print("Repo set to", repo)
return 0
elif status == "NO_KEY":
print("Key {} not found".format(key))
return 1
else:
print("Something went wrong:", status)
return 1

View file

@ -1,25 +1,32 @@
import os import os
from yaml import load from yaml import load, dump
try: try:
from yaml import CLoader as Loader from yaml import CLoader as Loader, CDumper as Dumper
except ImportError: except ImportError:
from yaml import Loader from yaml import Loader, Dumper
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) BASE_DIR = os.path.dirname(os.path.abspath(__file__))
USER_CONFIG_DIR = "~/.dfa.yml" USER_CONFIG_DIR = os.path.expanduser("~/.dfa.yml")
DEFAULT_CONFIG_DIR = os.path.join(BASE_DIR, 'defaults.yml')
def get_config_data(filename): def get_config_data(filename):
try: try:
config_file = open(filename) with open(filename) as config_file:
return load(config_file, Loader=Loader) return load(config_file, Loader=Loader)
except FileNotFoundError: except FileNotFoundError:
return [] return {}
def write_user_config(refresh_after=False):
try:
with open(USER_CONFIG_DIR, 'w') as config_file:
dump(USER_CONFIG, config_file, indent=4, default_flow_style=False)
return "SUCCESS"
except Exception as e:
return e
DEFAULT_CONFIG = get_config_data(os.path.join(BASE_DIR, 'defaults.yml')) DEFAULT_CONFIG = get_config_data(DEFAULT_CONFIG_DIR)
USER_CONFIG = get_config_data(os.path.expanduser(USER_CONFIG_DIR)) USER_CONFIG = get_config_data(os.path.expanduser(USER_CONFIG_DIR))
@ -30,3 +37,9 @@ def get(key):
elif DEFAULT_CONFIG and key in DEFAULT_CONFIG: elif DEFAULT_CONFIG and key in DEFAULT_CONFIG:
return DEFAULT_CONFIG[key] return DEFAULT_CONFIG[key]
return None return None
def set(key, value, refresh_after=False):
if key not in DEFAULT_CONFIG:
return "NO_KEY"
USER_CONFIG[key] = value
return write_user_config(refresh_after)