Mercurial > public > mercurial-scm > hg-stable
diff mercurial/templatekw.py @ 10054:1a85861f59af
cmdutil: extract ctx dependent closures into templatekw
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Sun, 13 Dec 2009 18:06:23 +0100 |
parents | 5c5c6295533d |
children | e400a511e63a |
line wrap: on
line diff
--- a/mercurial/templatekw.py Sun Dec 13 18:06:23 2009 +0100 +++ b/mercurial/templatekw.py Sun Dec 13 18:06:23 2009 +0100 @@ -5,6 +5,7 @@ # This software may be used and distributed according to the terms of the # GNU General Public License version 2, incorporated herein by reference. +import encoding def showlist(templ, name, values, plural=None, **args): '''expand set of values. @@ -67,3 +68,48 @@ if endname in templ: yield templ(endname, **args) +def showauthor(ctx, templ, **args): + return ctx.user() + +def showbranches(ctx, templ, **args): + branch = ctx.branch() + if branch != 'default': + branch = encoding.tolocal(branch) + return showlist(templ, 'branch', [branch], plural='branches', **args) + +def showdate(ctx, templ, **args): + return ctx.date() + +def showdescription(ctx, templ, **args): + return ctx.description().strip() + +def showextras(ctx, templ, **args): + for key, value in sorted(ctx.extra().items()): + args = args.copy() + args.update(dict(key=key, value=value)) + yield templ('extra', **args) + +def showfiles(ctx, templ, **args): + return showlist(templ, 'file', ctx.files(), **args) + +def shownode(ctx, templ, **args): + return ctx.hex() + +def showrev(ctx, templ, **args): + return ctx.rev() + +def showtags(ctx, templ, **args): + return showlist(templ, 'tag', ctx.tags(), **args) + +keywords = { + 'author': showauthor, + 'branches': showbranches, + 'date': showdate, + 'desc': showdescription, + 'extras': showextras, + 'files': showfiles, + 'node': shownode, + 'rev': showrev, + 'tags': showtags, +} +