#!/usr/bin/env python
+# -*- Mode: python; indent-tabs-mode: nil -*- */
+#
+# This file is part of systemd.
+#
+# Copyright 2012 Lennart Poettering
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# systemd is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with systemd; If not, see <http://www.gnu.org/licenses/>.
from xml.etree.ElementTree import parse, Element, SubElement, tostring
from sys import argv, stdout
index = {}
+def prettify(elem, indent = 0):
+ s = "\n" + indent * " "
+ if len(elem):
+ if not elem.text or not elem.text.strip():
+ elem.text = s + " "
+ for e in elem:
+ prettify(e, indent + 1)
+ if not e.tail or not e.tail.strip():
+ e.tail = s + " "
+ if not e.tail or not e.tail.strip():
+ e.tail = s
+ else:
+ if indent and (not elem.tail or not elem.tail.strip()):
+ elem.tail = s
+
for p in argv[1:]:
t = parse(p)
section = t.find('./refmeta/manvolnum').text
- purpose = t.find('./refnamediv/refpurpose').text
+ purpose = ' '.join(t.find('./refnamediv/refpurpose').text.split())
for f in t.findall('./refnamediv/refname'):
index[f.text] = (p, section, purpose)
if letter is None or n[0].upper() != letter:
letter = n[0].upper()
- h2 = SubElement(body, 'h1')
+ h2 = SubElement(body, 'h2')
h2.text = letter
ul = SubElement(body, 'ul')
p = SubElement(body, 'p')
p.text = "This index contains %s entries, referring to %i individual manual pages." % (len(index), len(argv)-1)
+if hasattr(stdout, "buffer"):
+ stdout = stdout.buffer
+prettify(html)
stdout.write(tostring(html))