Use a special exit code (4) for any error condition that indicates a bug in StGit. This will be useful in the test suite. Signed-off-by: Karl Hasselström <kha@xxxxxxxxxxx> --- stgit/main.py | 11 +++++++---- stgit/utils.py | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/stgit/main.py b/stgit/main.py index 79044b0..663fdec 100644 --- a/stgit/main.py +++ b/stgit/main.py @@ -18,7 +18,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -import sys, os +import sys, os, traceback from optparse import OptionParser import stgit.commands @@ -279,10 +279,13 @@ def main(): except (StgException, IOError, ParsingError, NoSectionError), err: out.error(str(err), title = '%s %s' % (prog, cmd)) if debug_level > 0: - raise - else: - sys.exit(utils.STGIT_COMMAND_ERROR) + traceback.print_exc() + sys.exit(utils.STGIT_COMMAND_ERROR) except KeyboardInterrupt: sys.exit(utils.STGIT_GENERAL_ERROR) + except: + out.error('Unhandled exception:') + traceback.print_exc() + sys.exit(utils.STGIT_BUG_ERROR) sys.exit(ret or utils.STGIT_SUCCESS) diff --git a/stgit/utils.py b/stgit/utils.py index b75c3b4..cd52382 100644 --- a/stgit/utils.py +++ b/stgit/utils.py @@ -327,6 +327,7 @@ STGIT_SUCCESS = 0 # everything's OK STGIT_GENERAL_ERROR = 1 # seems to be non-command-specific error STGIT_COMMAND_ERROR = 2 # seems to be a command that failed STGIT_CONFLICT = 3 # merge conflict, otherwise OK +STGIT_BUG_ERROR = 4 # a bug in StGit def strip_leading(prefix, s): """Strip leading prefix from a string. Blow up if the prefix isn't -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html