luci-app-statistics: stat-genconfig: don't emit bools for absent uci options
authorJo-Philipp Wich <jo@mein.io>
Mon, 25 Apr 2022 18:55:02 +0000 (20:55 +0200)
committerJo-Philipp Wich <jo@mein.io>
Mon, 25 Apr 2022 19:00:48 +0000 (21:00 +0200)
Do not emit native collectd.conf boolean false options if the corresponding
uci option is unset in order to honour collectd's implicit defaults.

This fixes certain options, such as the memory plugins `ValuesAbsolute`,
being without effect if declared as default-enabled in the related plugin
uci forms.

Fixes: #5777
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit f16037cec5e3f65cffe2f5788c264f1912435b0e)

applications/luci-app-statistics/root/usr/bin/stat-genconfig

index 82431fbd3919edc12d9bb91b4edb2858d5101908..24a2ca0e01285f7ce3649c9e8d2efb3072e4eddf 100755 (executable)
@@ -238,13 +238,13 @@ function _bool( s, n, nopad )
        local pad = ""
        if not nopad then pad = "\t" end
 
-       if s and s == "1" then
-               str = pad .. n .. " true"
-       else
-               str = pad .. n .. " false"
+       if s == "1" then
+               str = pad .. n .. " true\n"
+       elseif s == "0" then
+               str = pad .. n .. " false\n"
        end
 
-       return str .. "\n"
+       return str
 end
 
 function _string( s, n, nopad )