diff options
Diffstat (limited to 'apps/plugins/lua_scripts/dump_rbsettings.lua')
-rw-r--r-- | apps/plugins/lua_scripts/dump_rbsettings.lua | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/apps/plugins/lua_scripts/dump_rbsettings.lua b/apps/plugins/lua_scripts/dump_rbsettings.lua new file mode 100644 index 0000000000..2811d27487 --- /dev/null +++ b/apps/plugins/lua_scripts/dump_rbsettings.lua @@ -0,0 +1,49 @@ +require("rbsettings") +require("settings") +rb.metadata = nil -- remove track metadata settings +------------------------------------------------------------------------------- + +local function print_setting_table(t_tbl, s_sep) + s_sep = s_sep or "" + local str = "" + local function pfunct(t, sep, s, n) -- recursive print function + local vtype + for k, v in pairs(t) do + vtype = type(v) + if vtype == "table" then + local f = string.format("%s[%s]", n, k) + s = pfunct(v, sep, s, f) + elseif vtype == "boolean" then + v = v and "true" or "false" + s = string.format("%s%s[%s] = %s%s", s, n, k, v, sep) + elseif v then + s = string.format("%s%s[%s] = %s%s", s, n, k, v, sep) + end + end + return s + end + return pfunct(t_tbl, s_sep, str, "") +end + +local filename = "/settings.txt" +local file = io.open(filename, "w+") -- overwrite +local t_settings + +if not file then + rb.splash(rb.HZ, "Error writing " .. filename) + return +end + +t_settings = rb.settings.dump('global_settings', "system") +file:write("global_settings:\n") +file:write(print_setting_table(t_settings, "\n")) +file:write("\n\n") + +t_settings = rb.settings.dump('global_status', "system") +file:write("global_status:\n") +file:write(print_setting_table(t_settings, "\n")) +file:write("\n\n") + +file:close() + +rb.splash(100, "rb settings dumped: " .. filename) |