diff options
Diffstat (limited to 'bitbake/lib/bb/msg.py')
-rw-r--r-- | bitbake/lib/bb/msg.py | 108 |
1 files changed, 62 insertions, 46 deletions
diff --git a/bitbake/lib/bb/msg.py b/bitbake/lib/bb/msg.py index 3fcf7091be..cea5efb5a4 100644 --- a/bitbake/lib/bb/msg.py +++ b/bitbake/lib/bb/msg.py @@ -22,26 +22,32 @@ Message handling infrastructure for bitbake # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -import sys, bb -from bb import event - -debug_level = {} +import sys +import collections +import bb +import bb.event +debug_level = collections.defaultdict(lambda: 0) verbose = False -domain = bb.utils.Enum( - 'Build', - 'Cache', - 'Collection', - 'Data', - 'Depends', - 'Fetcher', - 'Parsing', - 'PersistData', - 'Provider', - 'RunQueue', - 'TaskData', - 'Util') +def _NamedTuple(name, fields): + Tuple = collections.namedtuple(name, " ".join(fields)) + return Tuple(*range(len(fields))) + +domain = _NamedTuple("Domain", ( + "Default", + "Build", + "Cache", + "Collection", + "Data", + "Depends", + "Fetcher", + "Parsing", + "PersistData", + "Provider", + "RunQueue", + "TaskData", + "Util")) class MsgBase(bb.event.Event): @@ -49,7 +55,7 @@ class MsgBase(bb.event.Event): def __init__(self, msg): self._message = msg - event.Event.__init__(self) + bb.event.Event.__init__(self) class MsgDebug(MsgBase): """Debug Message""" @@ -74,52 +80,62 @@ class MsgPlain(MsgBase): # def set_debug_level(level): - bb.msg.debug_level = {} - for domain in bb.msg.domain: - bb.msg.debug_level[domain] = level - bb.msg.debug_level['default'] = level + for d in domain: + debug_level[d] = level + debug_level[domain.Default] = level + +def get_debug_level(msgdomain = domain.Default): + return debug_level[msgdomain] def set_verbose(level): - bb.msg.verbose = level - -def set_debug_domains(domains): - for domain in domains: - found = False - for ddomain in bb.msg.domain: - if domain == str(ddomain): - bb.msg.debug_level[ddomain] = bb.msg.debug_level[ddomain] + 1 - found = True - if not found: - bb.msg.warn(None, "Logging domain %s is not valid, ignoring" % domain) + verbose = level + +def set_debug_domains(strdomains): + for domainstr in strdomains: + for d in domain: + if domain._fields[d] == domainstr: + debug_level[d] += 1 + break + else: + warn(None, "Logging domain %s is not valid, ignoring" % domainstr) # # Message handling functions # -def debug(level, domain, msg, fn = None): - if not domain: - domain = 'default' - if debug_level[domain] >= level: +def debug(level, msgdomain, msg, fn = None): + if not msgdomain: + msgdomain = domain.Default + + if debug_level[msgdomain] >= level: bb.event.fire(MsgDebug(msg), None) + if not bb.event._ui_handlers: + print('DEBUG: ' + msg) + +def note(level, msgdomain, msg, fn = None): + if not msgdomain: + msgdomain = domain.Default -def note(level, domain, msg, fn = None): - if not domain: - domain = 'default' - if level == 1 or verbose or debug_level[domain] >= 1: + if level == 1 or verbose or debug_level[msgdomain] >= 1: bb.event.fire(MsgNote(msg), None) + if not bb.event._ui_handlers: + print('NOTE: ' + msg) -def warn(domain, msg, fn = None): +def warn(msgdomain, msg, fn = None): bb.event.fire(MsgWarn(msg), None) + if not bb.event._ui_handlers: + print('WARNING: ' + msg) -def error(domain, msg, fn = None): +def error(msgdomain, msg, fn = None): bb.event.fire(MsgError(msg), None) print 'ERROR: ' + msg -def fatal(domain, msg, fn = None): +def fatal(msgdomain, msg, fn = None): bb.event.fire(MsgFatal(msg), None) - print 'FATAL: ' + msg + print('FATAL: ' + msg) sys.exit(1) def plain(msg, fn = None): bb.event.fire(MsgPlain(msg), None) - + if not bb.event._ui_handlers: + print(msg) |