Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.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 |
---|---|
31 discovery, | 31 discovery, |
32 encoding, | 32 encoding, |
33 error, | 33 error, |
34 exchange, | 34 exchange, |
35 extensions, | 35 extensions, |
36 formatter, | |
37 graphmod, | 36 graphmod, |
38 hbisect, | 37 hbisect, |
39 help, | 38 help, |
40 hg, | 39 hg, |
41 lock as lockmod, | 40 lock as lockmod, |
49 scmutil, | 48 scmutil, |
50 server, | 49 server, |
51 sshserver, | 50 sshserver, |
52 streamclone, | 51 streamclone, |
53 templatekw, | 52 templatekw, |
54 templater, | |
55 ui as uimod, | 53 ui as uimod, |
56 util, | 54 util, |
57 ) | 55 ) |
58 | 56 |
59 release = lockmod.release | 57 release = lockmod.release |
1852 Returns 0 on success, 1 if errors are encountered. | 1850 Returns 0 on success, 1 if errors are encountered. |
1853 """ | 1851 """ |
1854 with repo.wlock(False): | 1852 with repo.wlock(False): |
1855 return cmdutil.copy(ui, repo, pats, opts) | 1853 return cmdutil.copy(ui, repo, pats, opts) |
1856 | 1854 |
1857 @command('debugtemplate', | |
1858 [('r', 'rev', [], _('apply template on changesets'), _('REV')), | |
1859 ('D', 'define', [], _('define template keyword'), _('KEY=VALUE'))], | |
1860 _('[-r REV]... [-D KEY=VALUE]... TEMPLATE'), | |
1861 optionalrepo=True) | |
1862 def debugtemplate(ui, repo, tmpl, **opts): | |
1863 """parse and apply a template | |
1864 | |
1865 If -r/--rev is given, the template is processed as a log template and | |
1866 applied to the given changesets. Otherwise, it is processed as a generic | |
1867 template. | |
1868 | |
1869 Use --verbose to print the parsed tree. | |
1870 """ | |
1871 revs = None | |
1872 if opts['rev']: | |
1873 if repo is None: | |
1874 raise error.RepoError(_('there is no Mercurial repository here ' | |
1875 '(.hg not found)')) | |
1876 revs = scmutil.revrange(repo, opts['rev']) | |
1877 | |
1878 props = {} | |
1879 for d in opts['define']: | |
1880 try: | |
1881 k, v = (e.strip() for e in d.split('=', 1)) | |
1882 if not k: | |
1883 raise ValueError | |
1884 props[k] = v | |
1885 except ValueError: | |
1886 raise error.Abort(_('malformed keyword definition: %s') % d) | |
1887 | |
1888 if ui.verbose: | |
1889 aliases = ui.configitems('templatealias') | |
1890 tree = templater.parse(tmpl) | |
1891 ui.note(templater.prettyformat(tree), '\n') | |
1892 newtree = templater.expandaliases(tree, aliases) | |
1893 if newtree != tree: | |
1894 ui.note(("* expanded:\n"), templater.prettyformat(newtree), '\n') | |
1895 | |
1896 mapfile = None | |
1897 if revs is None: | |
1898 k = 'debugtemplate' | |
1899 t = formatter.maketemplater(ui, k, tmpl) | |
1900 ui.write(templater.stringify(t(k, **props))) | |
1901 else: | |
1902 displayer = cmdutil.changeset_templater(ui, repo, None, opts, tmpl, | |
1903 mapfile, buffered=False) | |
1904 for r in revs: | |
1905 displayer.show(repo[r], **props) | |
1906 displayer.close() | |
1907 | 1855 |
1908 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...'), inferrepo=True) | 1856 @command('debugwalk', walkopts, _('[OPTION]... [FILE]...'), inferrepo=True) |
1909 def debugwalk(ui, repo, *pats, **opts): | 1857 def debugwalk(ui, repo, *pats, **opts): |
1910 """show how files match on given patterns""" | 1858 """show how files match on given patterns""" |
1911 m = scmutil.match(repo[None], pats, opts) | 1859 m = scmutil.match(repo[None], pats, opts) |