summaryrefslogtreecommitdiff
path: root/sys/src/cmd/hg/doc/gendoc.py
diff options
context:
space:
mode:
authorOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
committerOri Bernstein <ori@eigenstate.org>2021-06-14 00:00:37 +0000
commita73a964e51247ed169d322c725a3a18859f109a3 (patch)
tree3f752d117274d444bda44e85609aeac1acf313f3 /sys/src/cmd/hg/doc/gendoc.py
parente64efe273fcb921a61bf27d33b230c4e64fcd425 (diff)
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/src/cmd/hg/doc/gendoc.py')
-rw-r--r--sys/src/cmd/hg/doc/gendoc.py115
1 files changed, 0 insertions, 115 deletions
diff --git a/sys/src/cmd/hg/doc/gendoc.py b/sys/src/cmd/hg/doc/gendoc.py
deleted file mode 100644
index c0b0ec452..000000000
--- a/sys/src/cmd/hg/doc/gendoc.py
+++ /dev/null
@@ -1,115 +0,0 @@
-import os, sys, textwrap
-# import from the live mercurial repo
-sys.path.insert(0, "..")
-# fall back to pure modules if required C extensions are not available
-sys.path.append(os.path.join('..', 'mercurial', 'pure'))
-from mercurial import demandimport; demandimport.enable()
-from mercurial.commands import table, globalopts
-from mercurial.i18n import _
-from mercurial.help import helptable
-
-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['cmd'] = cmds[0]
- d['aliases'] = cmd.split("|")[1:]
- d['desc'] = get_desc(attr[0].__doc__)
- d['opts'] = list(get_opts(attr[1]))
-
- s = 'hg ' + cmds[0]
- if len(attr) > 2:
- if not attr[2].startswith('hg'):
- s += ' ' + attr[2]
- else:
- s = attr[2]
- d['synopsis'] = s
-
- return d
-
-def show_doc(ui):
- def section(s):
- ui.write("%s\n%s\n\n" % (s, "-" * len(s)))
- def subsection(s):
- ui.write("%s\n%s\n\n" % (s, '"' * len(s)))
-
- # print options
- section(_("OPTIONS"))
- for optstr, desc in get_opts(globalopts):
- ui.write("%s\n %s\n\n" % (optstr, desc))
-
- # print cmds
- section(_("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\n" % d['cmd'])
- 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\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']))
-
- # print topics
- for names, sec, doc in helptable:
- for name in names:
- ui.write(".. _%s:\n" % name)
- ui.write("\n")
- section(sec.upper())
- if callable(doc):
- doc = doc()
- ui.write(doc)
- ui.write("\n")
-
-if __name__ == "__main__":
- show_doc(sys.stdout)