X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;ds=sidebyside;f=irkerhook.py;h=6aadd7ed7d5be55309bc3da1bb212aafd8194c5a;hb=bffe73e8b35d89de8d1f79a6744fcc7fac323545;hp=0f694c8f15e910cfe87ecfead10ca58337a4b488;hpb=1ee038af54756c72553edc23a529091d94592bba;p=bzrirker.git diff --git a/irkerhook.py b/irkerhook.py index 0f694c8..6aadd7e 100644 --- a/irkerhook.py +++ b/irkerhook.py @@ -3,16 +3,7 @@ # Copyright 2012 Neil Muller # GPL 2+ - see COPYING for details -from bzrlib import ( - errors, - revision as _mod_revision, - ) -from bzrlib.config import ( - ListOption, - Option, - bool_from_store, - int_from_store, - ) +from bzrlib.config import Option import socket import sys import json @@ -21,30 +12,32 @@ import json class IrkerSender(object): """An irker message sender.""" - def __init__(self, branch, revision_id, config, local_branch=None, - op='commit'): + def __init__(self, branch, revision_id, config): self.config = config self.branch = branch self.repository = branch.repository - if (local_branch is not None and - local_branch.repository.has_revision(revision_id)): - self.repository = local_branch.repository self._revision_id = revision_id self.revision = None self.revno = None - self.op = op def _setup_revision_and_revno(self): self.revision = self.repository.get_revision(self._revision_id) self.revno = self.branch.revision_id_to_revno(self._revision_id) def _format(self): + delta = self.branch.repository.get_revision_delta(self._revision_id) + files = [] + [files.append(f) for (f,_,_) in delta.added] + [files.append(f) for (f,_,_) in delta.removed] + [files.append(f) for (_,f,_,_,_,_) in delta.renamed] + [files.append(f) for (f,_,_,_,_) in delta.modified] + fields = { 'project': self.project(), 'committer': self.revision.committer, - 'repo': '', + 'repo': self.branch.nick, 'rev': '%d' % self.revno, - 'files': '', + 'files': ' '.join(files), 'logmsg': self.revision.get_summary(), 'url': self.url(), } @@ -67,7 +60,7 @@ class IrkerSender(object): return url def colours(self): - colour_style = self.config.get('irker_colors') + colour_style = self.config.get('irker_colours') colours = { 'bold': '', 'green': '', @@ -104,7 +97,7 @@ class IrkerSender(object): 'cyan': '\x0310', 'reset': '\x0F', } - return colours + return colours.iteritems() def project(self): project = self.config.get('irker_project') @@ -124,6 +117,8 @@ class IrkerSender(object): # Do this after we have locked, to make things faster. self._setup_revision_and_revno() channels = self.config.get('irker_channels') + if channels: + channels = channels.split(',') msg = unicode(self._format()) # We rely on the server truncating, rather than trying to be # too fancy here