fix #2906: no traceback for CLI errors...
This commit is contained in:
@@ -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)"""))
|
|||||||
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()
|
||||||
|
|
||||||
|
|||||||
+7
-3
@@ -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):
|
|||||||
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())
|
||||||
|
|||||||
Reference in New Issue
Block a user