# 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
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(),
}
for name, value in self.colours():
fields[name] = value
text = ('%(bold)s%(project)s:%(reset)s '
'%(green)s%(committer)s%(reset)s '
'%(repo)s * %(bold)s%(rev)s%(reset)s / '
- ' %(bold)s%(files)s%(reset)s: %(logmsg)s '
- '%(brown)s%(url)s%(reset)s' % fields)
+ ' %(bold)s%(files)s%(reset)s: %(logmsg)s ' % fields)
return text
def url(self):
return url
def colours(self):
- colour_style = self.config.get('irker_colors')
+ colour_style = self.config.get('irker_colours')
colours = {
'bold': '',
'green': '',
'cyan': '\x0310',
'reset': '\x0F',
}
- return colours
+ return colours.iteritems()
def project(self):
project = self.config.get('irker_project')
# 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