From a77986a99b26812f1a560fb65e8036d2cf236b3a Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Thu, 11 Feb 2010 16:03:59 -0500 Subject: [PATCH] [scanner] Print error instead of throwing for unknown include We should avoid exceptions being propagated to the toplevel. --- giscanner/scannermain.py | 6 +++++- giscanner/transformer.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/giscanner/scannermain.py b/giscanner/scannermain.py index cc70fde..44c0287 100644 --- a/giscanner/scannermain.py +++ b/giscanner/scannermain.py @@ -276,7 +276,11 @@ def scanner_main(args): for include in options.includes: if os.sep in include: raise ValueError("Invalid include path %r" % (include, )) - include_obj = Include.from_string(include) + try: + include_obj = Include.from_string(include) + except: + sys.stderr.write("Malformed include %r\n" % (include, )) + sys.exit(1) transformer.register_include(include_obj) packages = set(options.packages) diff --git a/giscanner/transformer.py b/giscanner/transformer.py index f31408f..2863e73 100644 --- a/giscanner/transformer.py +++ b/giscanner/transformer.py @@ -18,7 +18,7 @@ # Boston, MA 02111-1307, USA. # -import os +import os, sys from .ast import (Bitfield, Callback, Enum, Function, Namespace, Member, Parameter, Return, Struct, Field, @@ -125,8 +125,9 @@ class Transformer(object): path = os.path.join(d, girname) if os.path.exists(path): return path - raise ValueError("Couldn't find include %r (search path: %r)"\ + sys.stderr.write("Couldn't find include %r (search path: %r)\n"\ % (girname, searchdirs)) + sys.exit(1) def _parse_include(self, filename): parser = self._cachestore.load(filename) -- 2.39.2