comparison mercurial/debugcommands.py @ 30957:14794735faa8

debugcommands: move 'debugtemplate' in the new module
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
date Thu, 02 Feb 2017 10:06:01 +0100
parents db30c6bfeb70
children df73368c87c3
comparison
equal deleted inserted replaced
30956:db30c6bfeb70 30957:14794735faa8
38 encoding, 38 encoding,
39 error, 39 error,
40 exchange, 40 exchange,
41 extensions, 41 extensions,
42 fileset, 42 fileset,
43 formatter,
43 hg, 44 hg,
44 localrepo, 45 localrepo,
45 lock as lockmod, 46 lock as lockmod,
46 merge as mergemod, 47 merge as mergemod,
47 obsolete, 48 obsolete,
1947 for node in succsset[1:]: 1948 for node in succsset[1:]:
1948 ui.write(' ') 1949 ui.write(' ')
1949 ui.write(node2str(node)) 1950 ui.write(node2str(node))
1950 ui.write('\n') 1951 ui.write('\n')
1951 1952
1953 @command('debugtemplate',
1954 [('r', 'rev', [], _('apply template on changesets'), _('REV')),
1955 ('D', 'define', [], _('define template keyword'), _('KEY=VALUE'))],
1956 _('[-r REV]... [-D KEY=VALUE]... TEMPLATE'),
1957 optionalrepo=True)
1958 def debugtemplate(ui, repo, tmpl, **opts):
1959 """parse and apply a template
1960
1961 If -r/--rev is given, the template is processed as a log template and
1962 applied to the given changesets. Otherwise, it is processed as a generic
1963 template.
1964
1965 Use --verbose to print the parsed tree.
1966 """
1967 revs = None
1968 if opts['rev']:
1969 if repo is None:
1970 raise error.RepoError(_('there is no Mercurial repository here '
1971 '(.hg not found)'))
1972 revs = scmutil.revrange(repo, opts['rev'])
1973
1974 props = {}
1975 for d in opts['define']:
1976 try:
1977 k, v = (e.strip() for e in d.split('=', 1))
1978 if not k:
1979 raise ValueError
1980 props[k] = v
1981 except ValueError:
1982 raise error.Abort(_('malformed keyword definition: %s') % d)
1983
1984 if ui.verbose:
1985 aliases = ui.configitems('templatealias')
1986 tree = templater.parse(tmpl)
1987 ui.note(templater.prettyformat(tree), '\n')
1988 newtree = templater.expandaliases(tree, aliases)
1989 if newtree != tree:
1990 ui.note(("* expanded:\n"), templater.prettyformat(newtree), '\n')
1991
1992 mapfile = None
1993 if revs is None:
1994 k = 'debugtemplate'
1995 t = formatter.maketemplater(ui, k, tmpl)
1996 ui.write(templater.stringify(t(k, **props)))
1997 else:
1998 displayer = cmdutil.changeset_templater(ui, repo, None, opts, tmpl,
1999 mapfile, buffered=False)
2000 for r in revs:
2001 displayer.show(repo[r], **props)
2002 displayer.close()
2003
1952 @command('debugupgraderepo', [ 2004 @command('debugupgraderepo', [
1953 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')), 2005 ('o', 'optimize', [], _('extra optimization to perform'), _('NAME')),
1954 ('', 'run', False, _('performs an upgrade')), 2006 ('', 'run', False, _('performs an upgrade')),
1955 ]) 2007 ])
1956 def debugupgraderepo(ui, repo, run=False, optimize=None): 2008 def debugupgraderepo(ui, repo, run=False, optimize=None):