From 3c3e5f4276a893791110b03984735654372aa33a Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Mon, 10 Feb 2014 10:37:10 +0100 Subject: build-sys: move python helpers to tools directory Note that make-man-rules.py is missing in EXTRA_DIST=, this patch fixes this mistake too. --- tools/make-directive-index.py | 320 ++++++++++++++++++++++++++++++++++++++++++ tools/make-man-index.py | 136 ++++++++++++++++++ tools/make-man-rules.py | 113 +++++++++++++++ tools/xml_helper.py | 41 ++++++ 4 files changed, 610 insertions(+) create mode 100755 tools/make-directive-index.py create mode 100755 tools/make-man-index.py create mode 100644 tools/make-man-rules.py create mode 100644 tools/xml_helper.py (limited to 'tools') diff --git a/tools/make-directive-index.py b/tools/make-directive-index.py new file mode 100755 index 0000000000..2ff304fddc --- /dev/null +++ b/tools/make-directive-index.py @@ -0,0 +1,320 @@ +# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */ +# +# This file is part of systemd. +# +# Copyright 2012-2013 Zbigniew Jędrzejewski-Szmek +# +# 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 . + +import sys +import collections +import re +from xml_helper import * +from copy import deepcopy + +TEMPLATE = '''\ + + + + systemd.directives + systemd + + + + Developer + Zbigniew + Jędrzejewski-Szmek + zbyszek@in.waw.pl + + + + + + systemd.directives + 7 + + + + systemd.directives + Index of configuration directives + + + + Unit directives + + Directives for configuring units, used in unit + files. + + + + + + Options on the kernel command line + + Kernel boot options for configuring the behaviour of the + systemd process. + + + + + + Environment variables + + Environment variables understood by the systemd + manager and other programs. + + + + + + UDEV directives + + Directives for configuring systemd units through the + udev database. + + + + + + Network directives + + Directives for configuring network links through the + net-setup-link udev builtin and networks through + systemd-networkd. + + + + + + Journal fields + + Fields in the journal events with a well known meaning. + + + + + + PAM configuration directives + + Directives for configuring PAM behaviour. + + + + + + crypttab options + + Options which influence mounted filesystems and + encrypted volumes. + + + + + + System manager directives + + Directives for configuring the behaviour of the + systemd process. + + + + + + bootchart.conf directives + + Directives for configuring the behaviour of the + systemd-bootchart process. + + + + + + command-line options + + Command-line options accepted by programs in the + systemd suite. + + + + + + Constants + + Various constant used and/or defined by systemd. + + + + + + Miscellaneous options and directives + + Other configuration elements which don't fit in + any of the above groups. + + + + + + Files and directories + + Paths and file names referred to in the + documentation. + + + + + + Colophon + + + +''' + +COLOPHON = '''\ +This index contains {count} entries in {sections} sections, +referring to {pages} individual manual pages. +''' + +def _extract_directives(directive_groups, formatting, page): + t = xml_parse(page) + section = t.find('./refmeta/manvolnum').text + pagename = t.find('./refmeta/refentrytitle').text + + storopt = directive_groups['options'] + for variablelist in t.iterfind('.//variablelist'): + klass = variablelist.attrib.get('class') + storvar = directive_groups[klass or 'miscellaneous'] + #