X-Git-Url: https://vcs.fsf.org/?p=rainbowstream.git;a=blobdiff_plain;f=rainbowstream%2Fconfig.py;h=ff2d17df7e51db45591898f5ca442f46d5e853de;hp=183bfe35e84c2b9a604c5847fc2ca81b22b24505;hb=8b8566d13f923932bee8eec9487d35956797b796;hpb=ddb1e61513a7c363b5eb7a12e8fb296077aaaaa0 diff --git a/rainbowstream/config.py b/rainbowstream/config.py index 183bfe3..ff2d17d 100644 --- a/rainbowstream/config.py +++ b/rainbowstream/config.py @@ -2,10 +2,7 @@ import json import re import os import os.path - -from .db import * - -db = RainbowDB() +from collections import OrderedDict # Regular expression for comments comment_re = re.compile( @@ -13,7 +10,6 @@ comment_re = re.compile( re.DOTALL | re.MULTILINE ) - def load_config(filepath): """ Load config from filepath @@ -24,16 +20,22 @@ def load_config(filepath): while match: content = content[:match.start()] + content[match.end():] match = comment_re.search(content) - return json.loads(content) + return json.loads(content, object_pairs_hook=OrderedDict) -# Load default colorset +# Config dictionary c = {} -default_config = 'rainbowstream/colorset/default.json' -data = load_config(default_config) -for d in data: - c[d] = data[d] -c['theme'] = 'default' -# Load user's colorset + +# Load the initial config +config = os.path.dirname( + __file__) + '/colorset/config' +try: + data = load_config(config) + for d in data: + c[d] = data[d] +except: + pass + +# Load user's config rainbow_config = os.environ.get( 'HOME', os.environ.get( @@ -43,6 +45,15 @@ try: data = load_config(rainbow_config) for d in data: c[d] = data[d] - c['theme'] = 'custom' +except: + print('It seems that ~/.rainbow_config.json has wrong format :(') + +# Load default theme +theme_file = os.path.dirname( + __file__) + '/colorset/' + c['THEME'] + '.json' +try: + data = load_config(theme_file) + for d in data: + c[d] = data[d] except: pass