import re
import os
import os.path
+from io import open
from collections import OrderedDict
# Regular expression for comments in config file
"""
Load config from filepath
"""
- with open(filepath) as f:
+ with open(filepath, encoding='utf-8') as f:
content = ''.join(f.readlines())
match = comment_re.search(content)
while match:
"""
Get all config
"""
- path = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_config.json'
+ 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
elif value.lower() == 'false':
value = False
# Fix up
- path = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_config.json'
- data = load_config(path)
+ path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
+ data = {}
+ try:
+ data = load_config(path)
+ except:
+ pass
# Update global config
c[key] = value
# Update config file
else:
data[key] = value
# Save
- with open(path, 'w') as out:
+ with open(path, 'w', encoding='utf-8') as out:
json.dump(data, out, indent=4)
os.system('chmod 777 ' + path)
"""
Delete a config key
"""
- path = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_config.json'
+ path = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
data = load_config(path)
# Drop key
if key in data and key in c:
else:
raise Exception('No such config key.')
# Save
- with open(path, 'w') as out:
+ with open(path, 'w', encoding='utf-8') as out:
json.dump(data, out, indent=4)
os.system('chmod 777 ' + path)
"""
Reload config
"""
- rainbow_config = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_config.json'
+ rainbow_config = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
try:
data = load_config(rainbow_config)
for d in data:
except:
pass
# Load user's config
- rainbow_config = os.environ.get(
- 'HOME',
- os.environ.get(
- 'USERPROFILE',
- '')) + os.sep + '.rainbow_config.json'
+ rainbow_config = os.path.expanduser("~") + os.sep + '.rainbow_config.json'
try:
data = load_config(rainbow_config)
for d in data:
c[d] = data[d]
except:
- print('It seems that ~/.rainbow_config.json has wrong format :(')
+ pass
# Load default theme
theme_file = os.path.dirname(
__file__) + '/colorset/' + c['THEME'] + '.json'