[ovs-dev] [PATCH 7/8] xml2nroff: New program to generate a manpage from XML input.
Russell Bryant
rbryant at redhat.com
Thu Feb 19 17:24:42 UTC 2015
On 02/19/2015 03:12 AM, Ben Pfaff wrote:
> I really can't stand nroff syntax. This makes it possible to install
> nroff but write in a more sensible XML syntax.
>
> The following commit adds the first user.
>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
> Makefile.am | 1 +
> build-aux/xml2nroff | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 111 insertions(+)
> create mode 100755 build-aux/xml2nroff
>
> diff --git a/Makefile.am b/Makefile.am
> index 28496b3..0480d20 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -104,6 +104,7 @@ EXTRA_DIST = \
> build-aux/dist-docs \
> build-aux/sodepends.pl \
> build-aux/soexpand.pl \
> + build-aux/xml2nroff \
> $(MAN_FRAGMENTS) \
> $(MAN_ROOTS) \
> Vagrantfile
> diff --git a/build-aux/xml2nroff b/build-aux/xml2nroff
> new file mode 100755
> index 0000000..817abc6
> --- /dev/null
> +++ b/build-aux/xml2nroff
> @@ -0,0 +1,110 @@
> +#! /usr/bin/python
A license header would be good here.
> +if __name__ == "__main__":
> + try:
Instead of the double nesting here, I would move the outer one to just
around the part that could raise error.Error, which appears to be only
the call to manpage_to_nroff().
> + try:
> + options, args = getopt.gnu_getopt(sys.argv[1:], 'hV',
> + ['version=', 'help'])
> + except getopt.GetoptError, geo:
> + sys.stderr.write("%s: %s\n" % (argv0, geo.msg))
> + sys.exit(1)
> +
> + er_diagram = None
> + title = None
> + version = None
> + for key, value in options:
> + if key == '--version':
> + version = value
> + elif key in ['-h', '--help']:
> + usage()
> + else:
> + sys.exit(0)
> +
> + if len(args) != 1:
> + sys.stderr.write("%s: exactly 1 non-option arguments required "
> + "(use --help for help)\n" % argv0)
> + sys.exit(1)
> +
> + s = manpage_to_nroff(args[0], version)
> + for line in s.split("\n"):
can also use:
for line in s.splitlines():
...
> + line = line.strip()
> + if len(line):
also equivalent:
if line:
> + print line
> +
> + except error.Error, e:
> + sys.stderr.write("%s: %s\n" % (argv0, e.msg))
> + sys.exit(1)
> +
> +# Local variables:
> +# mode: python
> +# End:
>
--
Russell Bryant
More information about the dev
mailing list