comparison hgext/notify.py @ 3646:b4ad640a3bcf

templates: move changeset templating bits to cmdutils
author Matt Mackall <mpm@selenic.com>
date Mon, 13 Nov 2006 13:26:57 -0600
parents bf10cd8bc981
children 2956948b81f3
comparison
equal deleted inserted replaced
3645:b2c47652e8e3 3646:b4ad640a3bcf
66 # push changes to, they can manage their own subscriptions. 66 # push changes to, they can manage their own subscriptions.
67 67
68 from mercurial.demandload import * 68 from mercurial.demandload import *
69 from mercurial.i18n import gettext as _ 69 from mercurial.i18n import gettext as _
70 from mercurial.node import * 70 from mercurial.node import *
71 demandload(globals(), 'mercurial:commands,patch,templater,util,mail') 71 demandload(globals(), 'mercurial:commands,patch,cmdutil,templater,util,mail')
72 demandload(globals(), 'email.Parser fnmatch socket time') 72 demandload(globals(), 'email.Parser fnmatch socket time')
73 73
74 # template for single changeset can include email headers. 74 # template for single changeset can include email headers.
75 single_template = ''' 75 single_template = '''
76 Subject: changeset in {webroot}: {desc|firstline|strip} 76 Subject: changeset in {webroot}: {desc|firstline|strip}
105 self.ui.readsections(cfg, 'usersubs', 'reposubs') 105 self.ui.readsections(cfg, 'usersubs', 'reposubs')
106 self.repo = repo 106 self.repo = repo
107 self.stripcount = int(self.ui.config('notify', 'strip', 0)) 107 self.stripcount = int(self.ui.config('notify', 'strip', 0))
108 self.root = self.strip(self.repo.root) 108 self.root = self.strip(self.repo.root)
109 self.domain = self.ui.config('notify', 'domain') 109 self.domain = self.ui.config('notify', 'domain')
110 self.sio = templater.stringio() 110 self.sio = cmdutil.stringio()
111 self.subs = self.subscribers() 111 self.subs = self.subscribers()
112 112
113 mapfile = self.ui.config('notify', 'style') 113 mapfile = self.ui.config('notify', 'style')
114 template = (self.ui.config('notify', hooktype) or 114 template = (self.ui.config('notify', hooktype) or
115 self.ui.config('notify', 'template')) 115 self.ui.config('notify', 'template'))
116 self.t = templater.changeset_templater(self.ui, self.repo, mapfile, 116 self.t = cmdutil.changeset_templater(self.ui, self.repo, mapfile,
117 self.sio) 117 self.sio)
118 if not mapfile and not template: 118 if not mapfile and not template:
119 template = deftemplates.get(hooktype) or single_template 119 template = deftemplates.get(hooktype) or single_template
120 if template: 120 if template:
121 template = templater.parsestring(template, quoted=False) 121 template = templater.parsestring(template, quoted=False)
235 235
236 def diff(self, node, ref): 236 def diff(self, node, ref):
237 maxdiff = int(self.ui.config('notify', 'maxdiff', 300)) 237 maxdiff = int(self.ui.config('notify', 'maxdiff', 300))
238 if maxdiff == 0: 238 if maxdiff == 0:
239 return 239 return
240 fp = templater.stringio() 240 fp = cmdutil.stringio()
241 prev = self.repo.changelog.parents(node)[0] 241 prev = self.repo.changelog.parents(node)[0]
242 patch.diff(self.repo, prev, ref, fp=fp) 242 patch.diff(self.repo, prev, ref, fp=fp)
243 difflines = fp.getvalue().splitlines(1) 243 difflines = fp.getvalue().splitlines(1)
244 if self.ui.configbool('notify', 'diffstat', True): 244 if self.ui.configbool('notify', 'diffstat', True):
245 s = patch.diffstat(difflines) 245 s = patch.diffstat(difflines)