From dc6df972c9ee2afefd937bee3771865012daccef Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 29 Oct 2020 21:46:35 -0600 Subject: patman: Support checking for review tags in patchwork MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before sending out a new version of a series for review, it is important to add any review tags (e.g. Reviewed-by, Acked-by) collected by patchwork. Otherwise people waste time reviewing the same patch repeatedly, become frustrated and stop reviewing your patches. To help with this, add a new 'status' subcommand that checks patchwork for review tags, showing those which are not present in the local branch. This allows users to see what new review tags have been received and then add them. Sample output: $ patman status 1 Subject 1 Reviewed-by: Joe Bloggs 2 Subject 2 Tested-by: Lord Edmund Blackaddër Reviewed-by: Fred Bloggs + Reviewed-by: Mary Bloggs 1 new response available in patchwork The '+' indicates a new tag. Colours are used to make it easier to read. Signed-off-by: Simon Glass --- tools/patman/terminal.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) (limited to 'tools/patman/terminal.py') diff --git a/tools/patman/terminal.py b/tools/patman/terminal.py index 60dbce3ce1f..9be03b3a6fd 100644 --- a/tools/patman/terminal.py +++ b/tools/patman/terminal.py @@ -34,14 +34,22 @@ class PrintLine: newline: True to output a newline after the text colour: Text colour to use """ - def __init__(self, text, newline, colour): + def __init__(self, text, colour, newline=True, bright=True): self.text = text self.newline = newline self.colour = colour + self.bright = bright + + def __eq__(self, other): + return (self.text == other.text and + self.newline == other.newline and + self.colour == other.colour and + self.bright == other.bright) def __str__(self): - return 'newline=%s, colour=%s, text=%s' % (self.newline, self.colour, - self.text) + return ("newline=%s, colour=%s, bright=%d, text='%s'" % + (self.newline, self.colour, self.bright, self.text)) + def CalcAsciiLen(text): """Calculate the length of a string, ignoring any ANSI sequences @@ -136,7 +144,7 @@ def Print(text='', newline=True, colour=None, limit_to_line=False, bright=True): global last_print_len if print_test_mode: - print_test_list.append(PrintLine(text, newline, colour)) + print_test_list.append(PrintLine(text, colour, newline, bright)) else: if colour: col = Color() @@ -159,11 +167,12 @@ def PrintClear(): print('\r%s\r' % (' '* last_print_len), end='', flush=True) last_print_len = None -def SetPrintTestMode(): +def SetPrintTestMode(enable=True): """Go into test mode, where all printing is recorded""" global print_test_mode - print_test_mode = True + print_test_mode = enable + GetPrintTestLines() def GetPrintTestLines(): """Get a list of all lines output through Print() -- cgit v1.2.3