From 8b1518e74f4d040e54a745e8e407076c51722267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Metin?= Date: Thu, 8 Jun 2006 09:56:50 +0000 Subject: [PATCH] fix #2906: no traceback for CLI errors... --- pisi-cli | 5 +++-- pisi/cli/pisicli.py | 10 +++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/pisi-cli b/pisi-cli index 502fe0c3..4c970680 100755 --- a/pisi-cli +++ b/pisi-cli @@ -19,7 +19,7 @@ import bsddb3.db as db import pisi.ui import pisi.context as ctx -from pisi.cli.pisicli import PisiCLI +from pisi.cli.pisicli import PisiCLI, CLIError import gettext __trans = gettext.translation('pisi', fallback=True) @@ -64,7 +64,8 @@ Please file a bug report. (http://bugs.uludag.org.tr)""")) ui.info(_("Traceback:")) traceback.print_tb(tb) else: - ui.info(_("Use --debug to see a traceback.")) + if not exception is CLIError: + ui.info(_("Use --debug to see a traceback.")) exit() diff --git a/pisi/cli/pisicli.py b/pisi/cli/pisicli.py index 4a86076f..4ea30e91 100644 --- a/pisi/cli/pisicli.py +++ b/pisi/cli/pisicli.py @@ -29,6 +29,10 @@ class ParserError(pisi.Exception): class Error(pisi.Error): pass +class CLIError(Error): + pass + + class PreParser(OptionParser): """consumes any options, and finds arguments from command line""" @@ -94,14 +98,14 @@ class PisiCLI(object): sys.exit(0) elif 'help' in opts or 'h' in opts: self.die() - raise Error(_('No command given')) + raise CLIError(_('No command given')) cmd_name = args[0] except ParserError: - raise Error(_('Command line parsing error')) + raise CLIError(_('Command line parsing error')) self.command = Command.get_command(cmd_name, args=orig_args) if not self.command: - raise Error(_("Unrecognized command: %s") % cmd_name) + raise CLIError(_("Unrecognized command: %s") % cmd_name) def die(self): printu('\n' + self.parser.format_help())