From edddb24917ca00327b45fb8764455679f1ef6b09 Mon Sep 17 00:00:00 2001 Message-Id: From: Mark Wooding Date: Fri, 7 Dec 2007 21:19:25 +0000 Subject: [PATCH] Ignore the gitk exit code in 'stg log -g' (bug #10010) Organization: Straylight/Edgeware From: Catalin Marinas The patch adds the 'exitcode' boolean argument to Run.run() and modifies the 'log' command. Signed-off-by: Catalin Marinas --- stgit/commands/log.py | 4 ++-- stgit/run.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/stgit/commands/log.py b/stgit/commands/log.py index 39c2118..56f7e0a 100644 --- a/stgit/commands/log.py +++ b/stgit/commands/log.py @@ -21,6 +21,7 @@ from pydoc import pager from stgit.commands.common import * from stgit import stack, git from stgit.out import * +from stgit.run import Run help = 'display the patch changelog' usage = """%prog [options] [patch] @@ -140,7 +141,6 @@ def func(parser, options, args): raise CmdException, 'No changelog for patch "%s"' % name if options.graphical: - if os.system('gitk %s' % log) != 0: - raise CmdException, 'gitk execution failed' + Run('gitk', log).run(exitcode = False) else: show_log(log, options) diff --git a/stgit/run.py b/stgit/run.py index 83bf5f5..be5ff0f 100644 --- a/stgit/run.py +++ b/stgit/run.py @@ -78,7 +78,7 @@ class Run: self.__log_end(self.exitcode) self.__check_exitcode() return outdata - def __run_noio(self): + def __run_noio(self, exitcode = True): """Run without captured IO.""" assert self.__indata == None self.__log_start() @@ -88,7 +88,8 @@ class Run: except OSError, e: raise self.exc('%s failed: %s' % (self.__cmd[0], e)) self.__log_end(self.exitcode) - self.__check_exitcode() + if exitcode: + self.__check_exitcode() def returns(self, retvals): self.__good_retvals = retvals return self @@ -128,9 +129,9 @@ class Run: else: raise self.exc('%s produced %d lines, expected 1' % (self.__cmd[0], len(outlines))) - def run(self): + def run(self, exitcode = True): """Just run, with no IO redirection.""" - self.__run_noio() + self.__run_noio(exitcode = exitcode) def xargs(self, xargs): """Just run, with no IO redirection. The extra arguments are appended to the command line a few at a time; the command is -- [mdw]