X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=rainbowstream%2Frainbow.py;h=98aa05fba3da2a6c2531ea10c9e6057b641dcfcb;hb=bb678621e4f353d52624de6695c73c5eafcf890c;hp=51ab7ddd956563a5f942d1138ac27004765579ad;hpb=f75930c6e0b0ec505732b758d414162a8bebdece;p=rainbowstream.git diff --git a/rainbowstream/rainbow.py b/rainbowstream/rainbow.py index 51ab7dd..98aa05f 100644 --- a/rainbowstream/rainbow.py +++ b/rainbowstream/rainbow.py @@ -137,7 +137,7 @@ def get_decorated_name(): g['decorated_name'] = color_func(c['DECORATED_NAME'])('[' + name + ']: ') g['ascii_art'] = True - files = os.listdir('rainbowstream/colorset') + files = os.listdir(os.path.dirname(__file__)+'/colorset') themes = [f.split('.')[0] for f in files if f.split('.')[-1] == 'json'] themes += ['custom'] g['themes'] = themes @@ -775,12 +775,14 @@ def theme(): # Detect custom config if theme == 'custom': line += light_magenta('custom') - exists = db.theme_query() - themes = [t.theme_name for t in exists] - if themes[0] == 'custom': - line += light_magenta(' (applied)') + custom_path = os.environ.get( + 'HOME', + os.environ.get('USERPROFILE', + '')) + os.sep + '.rainbow_config.json' + if not os.path.exists(custom_path): + line += light_magenta(' (create your own config file at ~/.rainbow_config.json)') else: - line += light_magenta(' (not specified)') + line += light_magenta(' (loaded)') else: line += light_magenta(theme) if c['theme'] == theme : @@ -792,19 +794,30 @@ def theme(): # Change theme try: # Load new config - new_config = 'rainbowstream/colorset/' + g['stuff'] + '.json' + if g['stuff'] != 'custom': + new_config = os.path.dirname(__file__) + '/colorset/' + g['stuff'] + '.json' + else: + new_config = os.environ.get( + 'HOME',os.environ.get( + 'USERPROFILE', + '')) + os.sep + '.rainbow_config.json' new_config = load_config(new_config) if new_config: for nc in new_config: c[nc] = new_config[nc] - # Update db + # Update db and reset colors db.theme_update(g['stuff']) + c['theme'] = g['stuff'] + notify_cycle() g['decorated_name'] = color_func( c['DECORATED_NAME'])( '[@' + g['original_name'] + ']: ') printNicely(green('Theme changed.')) except: - printNicely(red('Sorry, config file is broken!')) + if g['stuff'] == 'custom': + printNicely(red('~/.rainbow_config.json is not exists!')) + else: + printNicely(red('No such theme exists.')) def help():