##// END OF EJS Templates
win32: read system rcpath from registry...
win32: read system rcpath from registry Using the module name was not always helpful. It breaks down when Mercurial is installed as source and when the Mercurial libs are used by external applications. This patch allows Mercurial installers to store the system wide rcpath in the registry, where it can always be found. HGRCPATH is a poor option for storing the system wide rcpath, since it overrides both the system and user rcpaths.

File last commit:

r5209:bbdcdc7f default
r5583:1b5b81d9 default
Show More
gendoc.py
105 lines | 3.0 KiB | text/x-python | PythonLexer
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 import sys, textwrap
# import from the live mercurial repo
sys.path.insert(0, "..")
Matt Mackall
gendoc: use demandimport
r5209 from mercurial import demandimport; demandimport.enable()
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 from mercurial.commands import table, globalopts
from mercurial.i18n import gettext as _
Matt Mackall
Generate docs for help topics
r3797 from mercurial.help import helptable
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814
def get_desc(docstr):
if not docstr:
return "", ""
# sanitize
docstr = docstr.strip("\n")
docstr = docstr.rstrip()
shortdesc = docstr.splitlines()[0].strip()
i = docstr.find("\n")
if i != -1:
desc = docstr[i+2:]
else:
desc = " %s" % shortdesc
return (shortdesc, desc)
def get_opts(opts):
for shortopt, longopt, default, desc in opts:
allopts = []
if shortopt:
allopts.append("-%s" % shortopt)
if longopt:
allopts.append("--%s" % longopt)
desc += default and _(" (default: %s)") % default or ""
yield(", ".join(allopts), desc)
def get_cmd(cmd):
d = {}
attr = table[cmd]
cmds = cmd.lstrip("^").split("|")
d['synopsis'] = attr[2]
d['cmd'] = cmds[0]
d['aliases'] = cmd.split("|")[1:]
d['desc'] = get_desc(attr[0].__doc__)
d['opts'] = list(get_opts(attr[1]))
return d
def show_doc(ui):
def bold(s, text=""):
ui.write("%s\n%s\n%s\n" % (s, "="*len(s), text))
def underlined(s, text=""):
ui.write("%s\n%s\n%s\n" % (s, "-"*len(s), text))
# print options
underlined(_("OPTIONS"))
for optstr, desc in get_opts(globalopts):
ui.write("%s::\n %s\n\n" % (optstr, desc))
# print cmds
underlined(_("COMMANDS"))
h = {}
for c, attr in table.items():
f = c.split("|")[0]
f = f.lstrip("^")
h[f] = c
cmds = h.keys()
cmds.sort()
for f in cmds:
if f.startswith("debug"): continue
d = get_cmd(h[f])
# synopsis
ui.write("%s::\n" % d['synopsis'].replace("hg ","", 1))
# description
ui.write("%s\n\n" % d['desc'][1])
# options
opt_output = list(d['opts'])
if opt_output:
opts_len = max([len(line[0]) for line in opt_output])
ui.write(_(" options:\n"))
for optstr, desc in opt_output:
if desc:
s = "%-*s %s" % (opts_len, optstr, desc)
else:
s = optstr
s = textwrap.fill(s, initial_indent=4 * " ",
subsequent_indent=(6 + opts_len) * " ")
ui.write("%s\n" % s)
ui.write("\n")
# aliases
if d['aliases']:
ui.write(_(" aliases: %s\n\n") % " ".join(d['aliases']))
Matt Mackall
Generate docs for help topics
r3797 # print topics
for t in helptable:
l = t.split("|")
section = l[-1]
underlined(_(section).upper())
doc = helptable[t]
if callable(doc):
doc = doc()
ui.write(_(doc))
ui.write("\n")
Benoit Boissinot
generate hg manpage from commands.py docstring...
r1814 if __name__ == "__main__":
show_doc(sys.stdout)