##// END OF EJS Templates
copies: avoid early return in _combine_changeset_copies...
copies: avoid early return in _combine_changeset_copies We have to change how we deal with matching (see next changeset) and that processing is common. So we shuffle things around before doing the semantic change for clarity. Differential Revision: https://phab.mercurial-scm.org/D9584

File last commit:

r46434:c102b704 default
r46773:1fcfff09 default
Show More
runrst
69 lines | 2.0 KiB | text/plain | TextLexer
#!/usr/bin/env python3
#
# runrst - register custom roles and run correct writer
#
# Copyright 2010 Matt Mackall <mpm@selenic.com> and others
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
"""usage: %s WRITER args...
where WRITER is the name of a Docutils writer such as 'html' or 'manpage'
"""
from __future__ import absolute_import
import sys
try:
import docutils.core as core
import docutils.nodes as nodes
import docutils.utils as utils
import docutils.parsers.rst.roles as roles
except ImportError:
sys.stderr.write(
"abort: couldn't generate documentation: docutils "
"module is missing\n"
)
sys.stderr.write(
"please install python-docutils or see "
"http://docutils.sourceforge.net/\n"
)
sys.exit(-1)
def role_hg(name, rawtext, text, lineno, inliner, options=None, content=None):
text = "hg " + utils.unescape(text)
linktext = nodes.literal(rawtext, text)
parts = text.split()
cmd, args = parts[1], parts[2:]
refuri = "hg.1.html#%s" % cmd
if cmd == 'help' and args:
if args[0] == 'config':
# :hg:`help config`
refuri = "hgrc.5.html"
elif args[0].startswith('config.'):
# :hg:`help config.SECTION...`
refuri = "hgrc.5.html#%s" % args[0].split('.', 2)[1]
elif len(args) >= 2 and args[0] == '-c':
# :hg:`help -c COMMAND ...` is equivalent to :hg:`COMMAND`
# (mainly for :hg:`help -c config`)
refuri = "hg.1.html#%s" % args[1]
else:
refuri = "hg.1.html#%s" % args[0]
node = nodes.reference(rawtext, '', linktext, refuri=refuri)
return [node], []
roles.register_local_role("hg", role_hg)
if __name__ == "__main__":
if len(sys.argv) < 2:
sys.stderr.write(__doc__ % sys.argv[0])
sys.exit(1)
writer = sys.argv[1]
del sys.argv[1]
core.publish_cmdline(writer_name=writer)