From ab900a79d35de3db2b74c4faf8abdf5e91b7c0de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Wed, 20 Sep 2006 22:01:05 +0000 Subject: [PATCH] temporary testing cli which uses python2.5 (python-bsdbd3 and piksemel must installed with hand) --- pisi-cli2.5 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 pisi-cli2.5 diff --git a/pisi-cli2.5 b/pisi-cli2.5 new file mode 100755 index 00000000..caa26255 --- /dev/null +++ b/pisi-cli2.5 @@ -0,0 +1,78 @@ +#!/usr/bin/python2.5 +# +# Copyright (C) 2005, TUBITAK/UEKAE +# +# This program is free software; you can redistribute it and/or modify it under +# the terms of the GNU General Public License as published by the Free +# Software Foundation; either version 2 of the License, or (at your option) +# any later version. +# +# Please read the COPYING file. +# + +import sys +import locale +import traceback +import exceptions +import signal +import bsddb3.db as db + +import pisi.ui +import pisi.context as ctx +import pisi.cli.pisicli as pisicli + +import gettext +__trans = gettext.translation('pisi', fallback=True) +_ = __trans.ugettext + +def exit(): + pisi.api.finalize() + sys.exit(1) + +def handle_exception(exception, value, tb): + signal.signal(signal.SIGINT, signal.SIG_IGN) # disable further interrupts + ui = pisi.cli.CLI() # make a temporary UI + show_traceback = False + if exception == exceptions.KeyboardInterrupt: + ui.error(_("Keyboard Interrupt: Exiting...")) + exit() + elif isinstance(value, pisi.Error): + ui.error(_("Program Terminated.")) + show_traceback = ctx.get_option('debug') + elif isinstance(value, db.DBRunRecoveryError): + ui.error(_("""A database operation has been aborted. You should run pisi +again for normal DB recovery procedure. Make sure you have free disk space. +You have to run rebuild-db only when there is file corruption and database upgrades.""")) + elif isinstance(value, pisi.Exception): + show_traceback = True + ui.error(_("""Unhandled internal exception. +Please file a bug report. (http://bugs.uludag.org.tr)""")) + else: + # For any other exception (possibly Python exceptions) show + # the traceback! + show_traceback = ctx.get_option('debug') + ui.error(_("System Error. Program Terminated.")) + + if ctx.get_option('debug'): + ui.error(u"%s: %s" % (exception, value)) + else: + ui.error(unicode(value)) + + ui.info(_("Please use 'pisi help' for general help.")) + + if show_traceback: + ui.info(_("Traceback:")) + traceback.print_tb(tb) + else: + if not exception is pisicli.Error: + ui.info(_("Use --debug to see a traceback.")) + + exit() + +if __name__ == "__main__": + + sys.excepthook = handle_exception + + locale.setlocale(locale.LC_ALL, '') + cli = pisicli.PisiCLI() + cli.run_command()