From 73142c740bdf749e005198f7f745e230d9e5981b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20Mart=C3=AD?= Date: Thu, 3 Jul 2014 13:59:36 +0200 Subject: [PATCH] Make use of FDroidException in the main fdroid script This should improve the output shown when exceptions are found --- fdroid | 13 +++++++++++-- fdroidserver/common.py | 6 +++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/fdroid b/fdroid index a2035fa2..93a83579 100755 --- a/fdroid +++ b/fdroid @@ -21,6 +21,8 @@ import sys import logging +from fdroidserver.common import FDroidException + commands = { "build": "Build a package from source", "init": "Quickly start a new repository", @@ -83,14 +85,21 @@ def main(): del sys.argv[1] mod = __import__('fdroidserver.' + command, None, None, [command]) + try: mod.main() - except Exception, e: + # These are ours, contain a proper message and are "expected" + except FDroidException, e: if verbose: raise else: - print str(e) + logging.critical(str(e)) sys.exit(1) + # These should only be unexpected crashes due to bugs in the code + # str(e) often doesn't contain a reason, so just show the backtrace + except Exception, e: + logging.critical("Unknown exception found!") + raise sys.exit(0) if __name__ == "__main__": diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 1b6631b3..d0cc51d3 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -971,7 +971,7 @@ def parse_androidmanifests(paths, ignoreversions=None): return (max_version, max_vercode, max_package) -class _FDroidException(Exception): +class FDroidException(Exception): def __init__(self, value, detail=None): self.value = value self.detail = detail @@ -993,11 +993,11 @@ class _FDroidException(Exception): return ret -class VCSException(_FDroidException): +class VCSException(FDroidException): pass -class BuildException(_FDroidException): +class BuildException(FDroidException): pass -- 2.30.2