From 9e38b52b63c615d6c909dac3d20730e96f28f5f2 Mon Sep 17 00:00:00 2001 From: "James E. Blair" Date: Sat, 23 Aug 2014 15:35:37 -0700 Subject: [PATCH] Add a standard 'light' palette For use in a terminal with a white background. Also add a config file option that selects the default palette. Change-Id: I1b4a61efa3d9011bfe089471fa80ad4563d9ba01 --- gertty.yaml-sample | 3 +++ gertty/config.py | 14 +++++++++----- gertty/palette.py | 20 ++++++++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/gertty.yaml-sample b/gertty.yaml-sample index 479a6de..c6531e1 100644 --- a/gertty.yaml-sample +++ b/gertty.yaml-sample @@ -15,6 +15,9 @@ palettes: test-SUCCESS: ['light green', '', ''] test-FAILURE: ['light red', '', ''] +# Uncomment the next line if your terminal has a white background +# palette: light + commentlinks: - match: "^- (?P.*?) (?P.*?) : (?P[^ ]+) ?(?P.*)$" test-result: "{job}" diff --git a/gertty/config.py b/gertty/config.py index 6c0cab6..f8fe71c 100644 --- a/gertty/config.py +++ b/gertty/config.py @@ -92,6 +92,7 @@ class ConfigSchema(object): def getSchema(self, data): schema = v.Schema({v.Required('servers'): self.servers, 'palettes': self.palettes, + 'palette': str, 'commentlinks': self.commentlinks, 'dashboards': self.dashboards, 'reviewkeys': self.reviewkeys, @@ -133,12 +134,15 @@ class Config(object): log_file = server.get('log_file', '~/.gertty.log') self.log_file = os.path.expanduser(log_file) - self.palettes = {} + self.palettes = {'default': gertty.palette.Palette({}), + 'light': gertty.palette.Palette(gertty.palette.LIGHT_PALETTE), + } for p in self.config.get('palettes', []): - self.palettes[p['name']] = gertty.palette.Palette(p) - if not self.palettes: - self.palettes['default'] = gertty.palette.Palette({}) - self.palette = self.palettes[palette] + if p['name'] not in self.palettes: + self.palettes[p['name']] = gertty.palette.Palette(p) + else: + self.palettes[p['name']].update(p) + self.palette = self.palettes[self.config.get('palette', palette)] self.commentlinks = [gertty.commentlink.CommentLink(c) for c in self.config.get('commentlinks', [])] diff --git a/gertty/palette.py b/gertty/palette.py index 6294fb8..570031e 100644 --- a/gertty/palette.py +++ b/gertty/palette.py @@ -75,10 +75,30 @@ DEFAULT_PALETTE={ 'focused-reviewed-change': ['dark gray,standout', ''], } +# A delta from the default palette +LIGHT_PALETTE = { + 'table-header': ['black,bold', ''], + 'unreviewed-project': ['black', ''], + 'subscribed-project': ['dark gray', ''], + 'unsubscribed-project': ['dark gray', ''], + 'focused-unreviewed-project': ['black,standout', ''], + 'focused-subscribed-project': ['dark gray,standout', ''], + 'focused-unsubscribed-project': ['dark gray,standout', ''], + 'change-data': ['dark blue,bold', ''], + 'reviewer-name': ['brown', ''], + 'change-message-name': ['brown', ''], + 'change-message-header': ['black', ''], + 'focused-link': ['dark blue,bold', ''], + 'filename': ['dark cyan', ''], + } + class Palette(object): def __init__(self, config): self.palette = {} self.palette.update(DEFAULT_PALETTE) + self.update(config) + + def update(self, config): d = config.copy() if 'name' in d: del d['name']