X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;ds=inline;f=make-directive-index.py;h=b43fea0b99e386936da6d32be21c6877504295d9;hb=b3e013148603aa670bc2c060ac63d48e54d76fc2;hp=af2d948cd1b696df8f2f635aa27bc58c2b5f80f0;hpb=f6c2e28b07a0d24c68f7780fc986ac3619fdcbdb;p=elogind.git
diff --git a/make-directive-index.py b/make-directive-index.py
old mode 100644
new mode 100755
index af2d948cd..b43fea0b9
--- a/make-directive-index.py
+++ b/make-directive-index.py
@@ -1,10 +1,30 @@
-# -*- coding: utf-8 -*-
+# -*- 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 xml.etree.ElementTree as tree
+import re
+from xml_helper import *
+from copy import deepcopy
TEMPLATE = '''\
-
+systemd.directives
@@ -22,7 +42,7 @@ TEMPLATE = '''\
systemd.directives
- 5
+ 7
@@ -40,12 +60,21 @@ TEMPLATE = '''\
- System manager directives
+ Options on the kernel command line
- Directives for configuring the behaviour of the
+ Kernel boot options for configuring the behaviour of the
systemd process.
-
+
+
+
+
+ Environment variables
+
+ Environment variables understood by the systemd
+ manager and other programs.
+
+
@@ -58,47 +87,194 @@ TEMPLATE = '''\
- Journal directives
+ Journal fields
- Directives for configuring the behaviour of the
- journald process.
+ 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
+
+
'''
-def _extract_directives(directive_groups, page):
- t = tree.parse(page)
+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') or 'unit-directives'
- stor = directive_groups[klass]
- for varname in variablelist.iterfind('./varlistentry/term/varname'):
- text = ''.join(varname.text.partition('=')[:2])
- stor[text].append((pagename, section))
-
-def _make_section(refentry, name, directives):
- varlist = refentry.find(".//*[@id='{}']".format(name))
+ klass = variablelist.attrib.get('class')
+ storvar = directive_groups[klass or 'miscellaneous']
+ #