[pypy-commit] buildbot buildbot-0.8.7: update ircbot for 0.8.7
bivab
noreply at buildbot.pypy.org
Mon Apr 29 11:01:56 CEST 2013
Author: David Schneider <david.schneider at picle.org>
Branch: buildbot-0.8.7
Changeset: r802:3b5b00554251
Date: 2013-04-26 19:45 +0200
http://bitbucket.org/pypy/buildbot/changeset/3b5b00554251/
Log: update ircbot for 0.8.7
diff --git a/bot2/pypybuildbot/ircbot.py b/bot2/pypybuildbot/ircbot.py
--- a/bot2/pypybuildbot/ircbot.py
+++ b/bot2/pypybuildbot/ircbot.py
@@ -7,54 +7,64 @@
the customized IRC messages.
"""
-import re
-from buildbot.status.words import Contact, IRC, log
+from buildbot.status.words import IRC, log, IRCContact
+# see http://www.mirc.com/colors.html
USE_COLOR_CODES = True
-GREEN = '\x033'
-RED = '\x034'
-AZURE = '\x0311'
-BLUE = '\x0312'
-PURPLE = '\x0313'
-GRAY = '\x0315'
-BOLD = '\x02'
-def color(code, s):
+BOLD = '\x02'
+COLORS = {
+ 'WHITE': '\x030',
+ 'BLACK': '\x031',
+ 'GREEN': '\x033',
+ 'RED': '\x034',
+ 'AZURE': '\x0311',
+ 'BLUE': '\x0312',
+ 'PURPLE': '\x0313',
+ 'GRAY': '\x0315',
+}
+
+
+def color(s, code=None, bold=False):
if USE_COLOR_CODES:
- return '%s%s\x0F' % (code, s)
+ c = BOLD if bold else ''
+ if code in COLORS:
+ c += COLORS[code]
+ return '%s%s\x0F' % (c, s)
return s
+
def extract_username(build):
- regexp = r"The web-page 'force build' button was pressed by '(.*)': .*"
- match = re.match(regexp, build.getReason())
- if match:
- return match.group(1)
- return None
+ owner = build.getProperty("owner")
+ reason = build.getProperty("reason")
+ return ": ".join(k for k in (owner, reason) if k)
def get_description_for_build(url, build):
- url = color(GRAY, url) # in gray
+ url = color(url, 'GRAY') # in gray
infos = []
username = extract_username(build)
if username:
- infos.append(color(BLUE, username)) # in blue
+ infos.append(color(username, 'BLUE')) # in blue
#
- branch = build.source.branch
+ branch = build.getProperty('branch')
if branch:
- infos.append(color(BOLD, branch)) # in bold
+ infos.append(color(branch, bold=True)) # in bold
#
if infos:
return '%s [%s]' % (url, ', '.join(infos))
else:
return url
+
def buildStarted(self, builderName, build):
builder = build.getBuilder()
- log.msg('[Contact] Builder %r in category %s started' % (builder, builder.category))
+ log.msg('[Contact] Builder %r in category %s started' %
+ (builder, builder.category))
# only notify about builders we are interested in
- if (self.channel.categories != None and
- builder.category not in self.channel.categories):
+ if (self.bot.categories is not None and
+ builder.category not in self.bot.categories):
log.msg('Not notifying for a build in the wrong category')
return
@@ -62,7 +72,7 @@
log.msg('Not notifying for a build when started-notification disabled')
return
- buildurl = self.channel.status.getURLForThing(build)
+ buildurl = self.bot.status.getURLForThing(build)
descr = get_description_for_build(buildurl, build)
msg = "Started: %s" % descr
self.send(msg)
@@ -72,29 +82,28 @@
builder = build.getBuilder()
# only notify about builders we are interested in
- log.msg('[Contact] builder %r in category %s finished' % (builder, builder.category))
+ log.msg('[Contact] builder %r in category %s finished' %
+ (builder, builder.category))
- if (self.channel.categories != None and
- builder.category not in self.channel.categories):
+ if (self.bot.categories is not None and
+ builder.category not in self.bot.categories):
return
if not self.notify_for_finished(build):
return
- buildurl = self.channel.status.getURLForThing(build)
+ buildurl = self.bot.status.getURLForThing(build)
descr = get_description_for_build(buildurl, build)
- result = self.results_descriptions.get(build.getResults(), "Finished ??")
- if result == 'Success':
- result = color(BOLD+GREEN, result)
- elif result == 'Exception':
- result = color(BOLD+PURPLE, result)
- else:
- result = color(BOLD+RED, result)
+ result, c = self.results_descriptions.get(build.getResults(),
+ ("Finished ??", 'RED'))
+ if c not in COLORS:
+ c = 'RED'
+ result = color(result, c, bold=True)
msg = "%s: %s" % (result, descr)
self.send(msg)
-Contact.buildStarted = buildStarted
-Contact.buildFinished = buildFinished
+IRCContact.buildStarted = buildStarted
+IRCContact.buildFinished = buildFinished
## def send_message(message, test=False):
More information about the pypy-commit
mailing list