* Paul Eggleton : bitbake/cooker: avoid printing stack trace for -b match error
@ 2012-01-15 10:15 git
0 siblings, 0 replies; only message in thread
From: git @ 2012-01-15 10:15 UTC (permalink / raw)
To: bitbake-devel
Module: bitbake.git
Branch: master
Commit: 803550a5098ec878164245e71344c3d687310b72
URL: http://git.openembedded.org/?p=bitbake.git&a=commit;h=803550a5098ec878164245e71344c3d687310b72
Author: Paul Eggleton <paul.eggleton@linux.intel.com>
Date: Fri Jan 13 17:01:51 2012 +0000
bitbake/cooker: avoid printing stack trace for -b match error
Improves error output for matching problems when the -b / --buildfile
command line option is used.
Rename MultipleMatches exception to NoSpecificMatch (as it is also
raised when there are no matching recipes) and make it inherit from
BBHandledException so that it doesn't print a stack trace (we always log
an ERROR prior to raising it.)
In addition, improve the formatting of the error message - only call the
log function once rather than once for every match, and use a more
appropriate message if there are no matches.
Fixes [YOCTO #1141]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
lib/bb/cooker.py | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 194046e..6041410 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -44,9 +44,9 @@ buildlog = logging.getLogger("BitBake.Build")
parselog = logging.getLogger("BitBake.Parsing")
providerlog = logging.getLogger("BitBake.Provider")
-class MultipleMatches(Exception):
+class NoSpecificMatch(bb.BBHandledException):
"""
- Exception raised when multiple file matches are found
+ Exception raised when no or multiple file matches are found
"""
class NothingToBuild(Exception):
@@ -979,10 +979,15 @@ class BBCooker:
"""
matches = self.matchFiles(buildfile)
if len(matches) != 1:
- parselog.error("Unable to match %s (%s matches found):" % (buildfile, len(matches)))
- for f in matches:
- parselog.error(" %s" % f)
- raise MultipleMatches
+ if matches:
+ msg = "Unable to match '%s' to a specific recipe file - %s matches found:" % (buildfile, len(matches))
+ if matches:
+ for f in matches:
+ msg += "\n %s" % f
+ parselog.error(msg)
+ else:
+ parselog.error("Unable to find any recipe file matching '%s'" % buildfile)
+ raise NoSpecificMatch
return matches[0]
def buildFile(self, buildfile, task):
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2012-01-15 10:13 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-01-15 10:15 Paul Eggleton : bitbake/cooker: avoid printing stack trace for -b match error git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.