Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 26086:3670efdc7088
templater: move verbosity-to-template matcher to constructor
We're going to reuse this and it's silly for it to be done per-cset anyway.
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 25 Aug 2015 13:38:20 -0500 |
parents | 1de0b66b65c5 |
children | ce26928cbe41 |
comparison
equal
deleted
inserted
replaced
26085:1de0b66b65c5 | 26086:3670efdc7088 |
---|---|
1412 if tmpl: | 1412 if tmpl: |
1413 self.t.cache['changeset'] = tmpl | 1413 self.t.cache['changeset'] = tmpl |
1414 | 1414 |
1415 self.cache = {} | 1415 self.cache = {} |
1416 | 1416 |
1417 # find correct templates for current mode | |
1418 tmplmodes = [ | |
1419 (True, None), | |
1420 (self.ui.verbose, 'verbose'), | |
1421 (self.ui.quiet, 'quiet'), | |
1422 (self.ui.debugflag, 'debug'), | |
1423 ] | |
1424 | |
1425 self._parts = {'header': '', 'footer': '', 'changeset': 'changeset'} | |
1426 for mode, postfix in tmplmodes: | |
1427 for t in self._parts: | |
1428 cur = t | |
1429 if postfix: | |
1430 cur += "_" + postfix | |
1431 if mode and cur in self.t: | |
1432 self._parts[t] = cur | |
1433 | |
1417 def _show(self, ctx, copies, matchfn, props): | 1434 def _show(self, ctx, copies, matchfn, props): |
1418 '''show a single changeset or file revision''' | 1435 '''show a single changeset or file revision''' |
1419 | 1436 |
1420 showlist = templatekw.showlist | 1437 showlist = templatekw.showlist |
1421 | 1438 |
1438 props['ctx'] = ctx | 1455 props['ctx'] = ctx |
1439 props['repo'] = self.repo | 1456 props['repo'] = self.repo |
1440 props['revcache'] = {'copies': copies} | 1457 props['revcache'] = {'copies': copies} |
1441 props['cache'] = self.cache | 1458 props['cache'] = self.cache |
1442 | 1459 |
1443 # find correct templates for current mode | |
1444 tmplmodes = [ | |
1445 (True, None), | |
1446 (self.ui.verbose, 'verbose'), | |
1447 (self.ui.quiet, 'quiet'), | |
1448 (self.ui.debugflag, 'debug'), | |
1449 ] | |
1450 | |
1451 types = {'header': '', 'footer': '', 'changeset': 'changeset'} | |
1452 for mode, postfix in tmplmodes: | |
1453 for t in types: | |
1454 cur = t | |
1455 if postfix: | |
1456 cur += "_" + postfix | |
1457 if mode and cur in self.t: | |
1458 types[t] = cur | |
1459 | |
1460 try: | 1460 try: |
1461 # write header | 1461 # write header |
1462 if types['header']: | 1462 if self._parts['header']: |
1463 h = templater.stringify(self.t(types['header'], **props)) | 1463 h = templater.stringify(self.t(self._parts['header'], **props)) |
1464 if self.buffered: | 1464 if self.buffered: |
1465 self.header[ctx.rev()] = h | 1465 self.header[ctx.rev()] = h |
1466 else: | 1466 else: |
1467 if self.lastheader != h: | 1467 if self.lastheader != h: |
1468 self.lastheader = h | 1468 self.lastheader = h |
1469 self.ui.write(h) | 1469 self.ui.write(h) |
1470 | 1470 |
1471 # write changeset metadata, then patch if requested | 1471 # write changeset metadata, then patch if requested |
1472 key = types['changeset'] | 1472 key = self._parts['changeset'] |
1473 self.ui.write(templater.stringify(self.t(key, **props))) | 1473 self.ui.write(templater.stringify(self.t(key, **props))) |
1474 self.showpatch(ctx.node(), matchfn) | 1474 self.showpatch(ctx.node(), matchfn) |
1475 | 1475 |
1476 if types['footer']: | 1476 if self._parts['footer']: |
1477 if not self.footer: | 1477 if not self.footer: |
1478 self.footer = templater.stringify(self.t(types['footer'], | 1478 self.footer = templater.stringify( |
1479 **props)) | 1479 self.t(self._parts['footer'], **props)) |
1480 except KeyError as inst: | 1480 except KeyError as inst: |
1481 msg = _("%s: no key named '%s'") | 1481 msg = _("%s: no key named '%s'") |
1482 raise util.Abort(msg % (self.t.mapfile, inst.args[0])) | 1482 raise util.Abort(msg % (self.t.mapfile, inst.args[0])) |
1483 except SyntaxError as inst: | 1483 except SyntaxError as inst: |
1484 raise util.Abort('%s: %s' % (self.t.mapfile, inst.args[0])) | 1484 raise util.Abort('%s: %s' % (self.t.mapfile, inst.args[0])) |