Kaydet (Commit) 8b1518e7 authored tarafından Barış Metin's avatar Barış Metin

fix #2906: no traceback for CLI errors...

üst 529d7a21
...@@ -19,7 +19,7 @@ import bsddb3.db as db ...@@ -19,7 +19,7 @@ import bsddb3.db as db
import pisi.ui import pisi.ui
import pisi.context as ctx import pisi.context as ctx
from pisi.cli.pisicli import PisiCLI from pisi.cli.pisicli import PisiCLI, CLIError
import gettext import gettext
__trans = gettext.translation('pisi', fallback=True) __trans = gettext.translation('pisi', fallback=True)
...@@ -64,7 +64,8 @@ Please file a bug report. (http://bugs.uludag.org.tr)""")) ...@@ -64,7 +64,8 @@ Please file a bug report. (http://bugs.uludag.org.tr)"""))
ui.info(_("Traceback:")) ui.info(_("Traceback:"))
traceback.print_tb(tb) traceback.print_tb(tb)
else: else:
ui.info(_("Use --debug to see a traceback.")) if not exception is CLIError:
ui.info(_("Use --debug to see a traceback."))
exit() exit()
......
...@@ -29,6 +29,10 @@ class ParserError(pisi.Exception): ...@@ -29,6 +29,10 @@ class ParserError(pisi.Exception):
class Error(pisi.Error): class Error(pisi.Error):
pass pass
class CLIError(Error):
pass
class PreParser(OptionParser): class PreParser(OptionParser):
"""consumes any options, and finds arguments from command line""" """consumes any options, and finds arguments from command line"""
...@@ -94,14 +98,14 @@ class PisiCLI(object): ...@@ -94,14 +98,14 @@ class PisiCLI(object):
sys.exit(0) sys.exit(0)
elif 'help' in opts or 'h' in opts: elif 'help' in opts or 'h' in opts:
self.die() self.die()
raise Error(_('No command given')) raise CLIError(_('No command given'))
cmd_name = args[0] cmd_name = args[0]
except ParserError: except ParserError:
raise Error(_('Command line parsing error')) raise CLIError(_('Command line parsing error'))
self.command = Command.get_command(cmd_name, args=orig_args) self.command = Command.get_command(cmd_name, args=orig_args)
if not self.command: if not self.command:
raise Error(_("Unrecognized command: %s") % cmd_name) raise CLIError(_("Unrecognized command: %s") % cmd_name)
def die(self): def die(self):
printu('\n' + self.parser.format_help()) printu('\n' + self.parser.format_help())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment