"""
Get all config
"""
- path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
- data = load_config(path)
- # Hard to set from prompt
- data.pop('ONLY_LIST', None)
- data.pop('IGNORE_LIST', None)
- data.pop('FORMAT', None)
- return data
+ try:
+ path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
+ data = load_config(path)
+ # Hard to set from prompt
+ data.pop('ONLY_LIST', None)
+ data.pop('IGNORE_LIST', None)
+ data.pop('FORMAT', None)
+ return data
+ except:
+ return []
def get_default_config(key):
"""
Get default value of a config key
"""
- path = os.path.dirname(
- __file__) + '/colorset/config'
try:
+ path = os.path.dirname(__file__) + '/colorset/config'
data = load_config(path)
+ return data[key]
except:
- raise Exception('No such config key.')
- return data[key]
+ raise Exception('This config key does not exist in default.')
def get_config(key):
value = True
elif value.lower() == 'false':
value = False
- # Fix up
+ # Update global config
+ c[key] = value
+ # Load current user config
path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
data = {}
try:
data = load_config(path)
except:
- pass
- # Update global config
- c[key] = value
+ return
# Update config file
if key in data:
fixup(data, key, value)
Delete a config key
"""
path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
- data = load_config(path)
+ try:
+ data = load_config(path)
+ except:
+ raise Exception('Config file is messed up.')
# Drop key
if key in data and key in c:
data.pop(key)
"""
Reload config
"""
- rainbow_config = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
- try:
+ try:
+ rainbow_config = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
data = load_config(rainbow_config)
for d in data:
c[d] = data[d]
except:
- print('It seems that ~/.rainbow_config.json has wrong format :(')
+ raise Exception('Can not reload config file with wrong format.')
def init_config():
data = load_config(rainbow_config)
for d in data:
c[d] = data[d]
- except:
- pass
+ except ValueError as e:
+ c['USER_JSON_ERROR'] = str(e)
# Load default theme
theme_file = os.path.dirname(
__file__) + '/colorset/' + c['THEME'] + '.json'
set_config('PREFIX', name)
g['original_name'] = name[1:]
g['decorated_name'] = lambda x: color_func(
- c['DECORATED_NAME'])(
- '[' + x + ']: ')
+ c['DECORATED_NAME'])('[' + x + ']: ')
# Theme init
files = os.listdir(os.path.dirname(__file__) + '/colorset')
themes = [f.split('.')[0] for f in files if f.split('.')[-1] == 'json']
c['message_dict'] = []
# Image on term
c['IMAGE_ON_TERM'] = args.image_on_term
+ set_config('IMAGE_ON_TERM',str(c['IMAGE_ON_TERM']))
def switch():
value = get_default_config(key)
line = ' ' * 2 + green(key) + ': ' + light_magenta(value)
printNicely(line)
- except:
- printNicely(
- light_magenta('This config key does not exist in default.'))
+ except Exception as e:
+ printNicely(red(e))
# Delete specific config key in config file
elif len(g['stuff'].split()) == 2 and g['stuff'].split()[-1] == 'drop':
key = g['stuff'].split()[0]
try:
delete_config(key)
printNicely(green('Config key is dropped.'))
- except:
- printNicely(red('No such config key.'))
+ except Exception as e:
+ printNicely(red(e))
# Set specific config
elif len(g['stuff'].split()) == 3 and g['stuff'].split()[1] == '=':
key = g['stuff'].split()[0]
if key == 'THEME':
c['THEME'] = reload_theme(value, c['THEME'])
g['decorated_name'] = lambda x: color_func(
- c['DECORATED_NAME'])(
- '[' + x + ']: ')
+ c['DECORATED_NAME'])('[' + x + ']: ')
+ reload_config()
printNicely(green('Updated successfully.'))
- except:
- printNicely(light_magenta('Not valid value.'))
- return
- reload_config()
+ except Exception as e:
+ printNicely(red(e))
else:
printNicely(light_magenta('Sorry I can\'s understand.'))
Reset prefix of line
"""
if g['reset']:
+ if c.get('USER_JSON_ERROR'):
+ printNicely(red('Your ~/.rainbow_config.json is messed up:'))
+ printNicely(red('>>> ' + c['USER_JSON_ERROR']))
+ printNicely('')
printNicely(magenta('Need tips ? Type "h" and hit Enter key!'))
g['reset'] = False
try: