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@treskal.com>
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
"""
+import sys, os, traceback
from optparse import OptionParser
import stgit.commands
from optparse import OptionParser
import stgit.commands
except (StgException, IOError, ParsingError, NoSectionError), err:
out.error(str(err), title = '%s %s' % (prog, cmd))
if debug_level > 0:
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 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)
sys.exit(ret or utils.STGIT_SUCCESS)
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_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
def strip_leading(prefix, s):
"""Strip leading prefix from a string. Blow up if the prefix isn't