[systemd-devel] [PATCH 06/10] bootchart: Support bootchart.conf.d directories in the usual search paths

Josh Triplett josh at joshtriplett.org
Sat Nov 29 01:06:41 PST 2014


---
 Makefile-man.am              |  6 ++++--
 man/bootchart.conf.xml       | 21 +++++++++++++++------
 src/bootchart/bootchart.c    |  7 +++----
 src/bootchart/bootchart.conf |  3 +++
 4 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/Makefile-man.am b/Makefile-man.am
index 2a0d73e..593dc40 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -701,8 +701,10 @@ MANPAGES += \
 	man/bootchart.conf.5 \
 	man/systemd-bootchart.1
 MANPAGES_ALIAS += \
-	#
-
+	man/bootchart.conf.d.5
+man/bootchart.conf.d.5: man/bootchart.conf.5
+man/bootchart.conf.d.html: man/bootchart.conf.html
+	$(html-alias)
 
 endif
 
diff --git a/man/bootchart.conf.xml b/man/bootchart.conf.xml
index 68834c7..a364826 100644
--- a/man/bootchart.conf.xml
+++ b/man/bootchart.conf.xml
@@ -25,7 +25,8 @@
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 -->
 
-<refentry id="bootchart.conf" conditional='ENABLE_BOOTCHART'>
+<refentry id="bootchart.conf" conditional='ENABLE_BOOTCHART'
+          xmlns:xi="http://www.w3.org/2001/XInclude">
         <refentryinfo>
                 <title>bootchart.conf</title>
                 <productname>systemd</productname>
@@ -47,23 +48,31 @@
 
         <refnamediv>
                 <refname>bootchart.conf</refname>
-                <refpurpose>Boot performance analysis graphing tool configuration file</refpurpose>
+                <refname>bootchart.conf.d</refname>
+                <refpurpose>Boot performance analysis graphing tool configuration files</refpurpose>
         </refnamediv>
 
         <refsynopsisdiv>
                 <para><filename>/etc/systemd/bootchart.conf</filename></para>
+                <para><filename>/etc/systemd/bootchart.conf.d/*.conf</filename></para>
+                <para><filename>/run/systemd/bootchart.conf.d/*.conf</filename></para>
+                <para><filename>/usr/lib/systemd/bootchart.conf.d/*.conf</filename></para>
         </refsynopsisdiv>
 
         <refsect1>
                 <title>Description</title>
 
                 <para>When starting, systemd-bootchart will read the
-                configuration file <filename>bootchart.conf</filename>.
-                This configuration file determines logging parameters and
-                graph output.</para>
-
+                configuration file
+                <filename>/etc/systemd/bootchart.conf</filename>, followed by
+                the files in the <filename>bootchart.conf.d</filename>
+                directories.  These configuration files determine logging
+                parameters and graph output.</para>
         </refsect1>
 
+        <xi:include href="standard-conf.xml" xpointer="confd" />
+        <xi:include href="standard-conf.xml" xpointer="conf" />
+
         <refsect1>
                 <title>Options</title>
 
diff --git a/src/bootchart/bootchart.c b/src/bootchart/bootchart.c
index 5bb4247..0808ba4 100644
--- a/src/bootchart/bootchart.c
+++ b/src/bootchart/bootchart.c
@@ -125,10 +125,9 @@ static void parse_conf(void) {
                 { NULL, NULL, NULL, 0, NULL }
         };
 
-        config_parse(NULL, BOOTCHART_CONF, NULL,
-                     NULL,
-                     config_item_table_lookup, items,
-                     true, false, true, NULL);
+        config_parse_many(BOOTCHART_CONF,
+                          CONF_DIRS_NULSTR("systemd/bootchart.conf"),
+                          NULL, config_item_table_lookup, items, true, NULL);
 
         if (init != NULL)
                 strscpy(arg_init_path, sizeof(arg_init_path), init);
diff --git a/src/bootchart/bootchart.conf b/src/bootchart/bootchart.conf
index d7e0dab..c73328f 100644
--- a/src/bootchart/bootchart.conf
+++ b/src/bootchart/bootchart.conf
@@ -5,6 +5,9 @@
 #  the Free Software Foundation; either version 2.1 of the License, or
 #  (at your option) any later version.
 #
+# You can override the directives in this file by creating files in
+# /etc/systemd/bootchart.conf.d/*.conf.
+#
 # See bootchart.conf(5) for details
 
 [Bootchart]
-- 
2.1.3



More information about the systemd-devel mailing list