Discard the exit code in a way that meshes better with the existing
handling of exit codes.
Signed-off-by: Karl Hasselström <kha@treskal.com>
raise CmdException, 'No changelog for patch "%s"' % name
if options.graphical:
raise CmdException, 'No changelog for patch "%s"' % name
if options.graphical:
- Run('gitk', log).run(exitcode = False)
+ Run('gitk', log).discard_exitcode().run()
else:
show_log(log, options)
else:
show_log(log, options)
duration = datetime.datetime.now() - self.__starttime
out.done('%1.3f s' % (duration.microseconds/1e6 + duration.seconds))
def __check_exitcode(self):
duration = datetime.datetime.now() - self.__starttime
out.done('%1.3f s' % (duration.microseconds/1e6 + duration.seconds))
def __check_exitcode(self):
+ if self.__good_retvals == None:
+ return
if self.exitcode not in self.__good_retvals:
raise self.exc('%s failed with code %d'
% (self.__cmd[0], self.exitcode))
if self.exitcode not in self.__good_retvals:
raise self.exc('%s failed with code %d'
% (self.__cmd[0], self.exitcode))
self.__log_end(self.exitcode)
self.__check_exitcode()
return outdata
self.__log_end(self.exitcode)
self.__check_exitcode()
return outdata
- def __run_noio(self, exitcode = True):
"""Run without captured IO."""
assert self.__indata == None
self.__log_start()
"""Run without captured IO."""
assert self.__indata == None
self.__log_start()
except OSError, e:
raise self.exc('%s failed: %s' % (self.__cmd[0], e))
self.__log_end(self.exitcode)
except OSError, e:
raise self.exc('%s failed: %s' % (self.__cmd[0], e))
self.__log_end(self.exitcode)
- if exitcode:
- self.__check_exitcode()
+ self.__check_exitcode()
def returns(self, retvals):
self.__good_retvals = retvals
return self
def returns(self, retvals):
self.__good_retvals = retvals
return self
+ def discard_exitcode(self):
+ self.__good_retvals = None
+ return self
def discard_stderr(self, discard = True):
self.__discard_stderr = discard
return self
def discard_stderr(self, discard = True):
self.__discard_stderr = discard
return self
else:
raise self.exc('%s produced %d lines, expected 1'
% (self.__cmd[0], len(outlines)))
else:
raise self.exc('%s produced %d lines, expected 1'
% (self.__cmd[0], len(outlines)))
- def run(self, exitcode = True):
"""Just run, with no IO redirection."""
"""Just run, with no IO redirection."""
- 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
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