summaryrefslogtreecommitdiff
path: root/bitbake-dev/lib/bb/msg.py
diff options
context:
space:
mode:
authorRichard Purdie <richard@openedhand.com>2008-09-30 15:08:33 +0000
committerRichard Purdie <richard@openedhand.com>2008-09-30 15:08:33 +0000
commitc30eddb243e7e65f67f656e62848a033cf6f2e5c (patch)
tree110dd95788b76f55d31cb8d30aac2de8400b6f4a /bitbake-dev/lib/bb/msg.py
parent5ef0510474004eeb2ae8a99b64e2febb1920e077 (diff)
downloadopenembedded-core-c30eddb243e7e65f67f656e62848a033cf6f2e5c.tar.gz
openembedded-core-c30eddb243e7e65f67f656e62848a033cf6f2e5c.tar.bz2
openembedded-core-c30eddb243e7e65f67f656e62848a033cf6f2e5c.tar.xz
openembedded-core-c30eddb243e7e65f67f656e62848a033cf6f2e5c.zip
Add bitbake-dev to allow ease of testing and development of bitbake trunk
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5337 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'bitbake-dev/lib/bb/msg.py')
-rw-r--r--bitbake-dev/lib/bb/msg.py125
1 files changed, 125 insertions, 0 deletions
diff --git a/bitbake-dev/lib/bb/msg.py b/bitbake-dev/lib/bb/msg.py
new file mode 100644
index 000000000..7aa0a27d2
--- /dev/null
+++ b/bitbake-dev/lib/bb/msg.py
@@ -0,0 +1,125 @@
+# ex:ts=4:sw=4:sts=4:et
+# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
+"""
+BitBake 'msg' implementation
+
+Message handling infrastructure for bitbake
+
+"""
+
+# Copyright (C) 2006 Richard Purdie
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2 as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+import sys, os, re, bb
+from bb import utils, event
+
+debug_level = {}
+
+verbose = False
+
+domain = bb.utils.Enum(
+ 'Build',
+ 'Cache',
+ 'Collection',
+ 'Data',
+ 'Depends',
+ 'Fetcher',
+ 'Parsing',
+ 'PersistData',
+ 'Provider',
+ 'RunQueue',
+ 'TaskData',
+ 'Util')
+
+
+class MsgBase(bb.event.Event):
+ """Base class for messages"""
+
+ def __init__(self, msg, d ):
+ self._message = msg
+ event.Event.__init__(self, d)
+
+class MsgDebug(MsgBase):
+ """Debug Message"""
+
+class MsgNote(MsgBase):
+ """Note Message"""
+
+class MsgWarn(MsgBase):
+ """Warning Message"""
+
+class MsgError(MsgBase):
+ """Error Message"""
+
+class MsgFatal(MsgBase):
+ """Fatal Message"""
+
+class MsgPlain(MsgBase):
+ """General output"""
+
+#
+# Message control functions
+#
+
+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
+
+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)
+
+#
+# Message handling functions
+#
+
+def debug(level, domain, msg, fn = None):
+ if not domain:
+ domain = 'default'
+ if debug_level[domain] >= level:
+ bb.event.fire(MsgDebug(msg, None))
+
+def note(level, domain, msg, fn = None):
+ if not domain:
+ domain = 'default'
+ if level == 1 or verbose or debug_level[domain] >= 1:
+ bb.event.fire(MsgNote(msg, None))
+
+def warn(domain, msg, fn = None):
+ bb.event.fire(MsgWarn(msg, None))
+
+def error(domain, msg, fn = None):
+ bb.event.fire(MsgError(msg, None))
+ print 'ERROR: ' + msg
+
+def fatal(domain, msg, fn = None):
+ bb.event.fire(MsgFatal(msg, None))
+ print 'FATAL: ' + msg
+ sys.exit(1)
+
+def plain(msg, fn = None):
+ bb.event.fire(MsgPlain(msg, None))
+