summaryrefslogtreecommitdiff
path: root/builtin/mainmenu
diff options
context:
space:
mode:
authorTim <t4im@users.noreply.github.com>2016-07-27 18:41:16 +0200
committerest31 <MTest31@outlook.com>2016-08-20 15:48:47 +0200
commitba501273094b0c6c77404610f2dee81c031d0074 (patch)
tree57ee8a2c2288557e0221927214a430758d3c547b /builtin/mainmenu
parenta4962240bdf7ddc221c477ada1c2a99c1aee3e2e (diff)
downloadminetest-ba501273094b0c6c77404610f2dee81c031d0074.tar.gz
minetest-ba501273094b0c6c77404610f2dee81c031d0074.tar.bz2
minetest-ba501273094b0c6c77404610f2dee81c031d0074.zip
Move generation from settingtypes out of dlg_settings_advanced
Avoids unreachable code linter warning by moving generation code (of minetest.conf.example and settings_translation_file.cpp) out of dlg_settings_advanced. Due to passing the settings, also it avoids reading the settings file twice. Instead of activating the code by changing the active if-clauses, its activation is now done by uncommenting the loadfile() statement.
Diffstat (limited to 'builtin/mainmenu')
-rw-r--r--builtin/mainmenu/dlg_settings_advanced.lua101
-rw-r--r--builtin/mainmenu/generate_from_settingtypes.lua99
2 files changed, 101 insertions, 99 deletions
diff --git a/builtin/mainmenu/dlg_settings_advanced.lua b/builtin/mainmenu/dlg_settings_advanced.lua
index f5e80c252..68b5fd4ef 100644
--- a/builtin/mainmenu/dlg_settings_advanced.lua
+++ b/builtin/mainmenu/dlg_settings_advanced.lua
@@ -659,102 +659,5 @@ function create_adv_settings_dlg()
return dlg
end
-local function create_minetest_conf_example()
- local result = "# This file contains a list of all available settings and their default value for minetest.conf\n" ..
- "\n" ..
- "# By default, all the settings are commented and not functional.\n" ..
- "# Uncomment settings by removing the preceding #.\n" ..
- "\n" ..
- "# minetest.conf is read by default from:\n" ..
- "# ../minetest.conf\n" ..
- "# ../../minetest.conf\n" ..
- "# Any other path can be chosen by passing the path as a parameter\n" ..
- "# to the program, eg. \"minetest.exe --config ../minetest.conf.example\".\n" ..
- "\n" ..
- "# Further documentation:\n" ..
- "# http://wiki.minetest.net/\n" ..
- "\n"
-
- local settings = parse_config_file(true, false)
- for _, entry in ipairs(settings) do
- if entry.type == "category" then
- if entry.level == 0 then
- result = result .. "#\n# " .. entry.name .. "\n#\n\n"
- else
- for i = 1, entry.level do
- result = result .. "#"
- end
- result = result .. "# " .. entry.name .. "\n\n"
- end
- else
- if entry.comment ~= "" then
- for _, comment_line in ipairs(entry.comment:split("\n", true)) do
- result = result .."# " .. comment_line .. "\n"
- end
- end
- result = result .. "# type: " .. entry.type
- if entry.min then
- result = result .. " min: " .. entry.min
- end
- if entry.max then
- result = result .. " max: " .. entry.max
- end
- if entry.values then
- result = result .. " values: " .. table.concat(entry.values, ", ")
- end
- if entry.possible then
- result = result .. " possible values: " .. entry.possible:gsub(",", ", ")
- end
- result = result .. "\n"
- local append = ""
- if entry.default ~= "" then
- append = " " .. entry.default
- end
- result = result .. "# " .. entry.name .. " =" .. append .. "\n\n"
- end
- end
- return result
-end
-
-local function create_translation_file()
- local result = "// This file is automatically generated\n" ..
- "// It conatins a bunch of fake gettext calls, to tell xgettext about the strings in config files\n" ..
- "// To update it, refer to the bottom of builtin/mainmenu/tab_settings.lua\n\n" ..
- "fake_function() {\n"
-
- local settings = parse_config_file(true, false)
- for _, entry in ipairs(settings) do
- if entry.type == "category" then
- local name_escaped = entry.name:gsub("\"", "\\\"")
- result = result .. "\tgettext(\"" .. name_escaped .. "\");\n"
- else
- if entry.readable_name then
- local readable_name_escaped = entry.readable_name:gsub("\"", "\\\"")
- result = result .. "\tgettext(\"" .. readable_name_escaped .. "\");\n"
- end
- if entry.comment ~= "" then
- local comment_escaped = entry.comment:gsub("\n", "\\n")
- comment_escaped = comment_escaped:gsub("\"", "\\\"")
- result = result .. "\tgettext(\"" .. comment_escaped .. "\");\n"
- end
- end
- end
- result = result .. "}\n"
- return result
-end
-
-if false then
- local file = io.open("minetest.conf.example", "w")
- if file then
- file:write(create_minetest_conf_example())
- file:close()
- end
-end
-
-if false then
- local file = io.open("src/settings_translation_file.cpp", "w")
- if file then
- file:write(create_translation_file())
- file:close()
- end
-end
+-- generate minetest.conf.example and settings_translation_file.cpp:
+--assert(loadfile(core.get_mainmenu_path()..DIR_DELIM.."generate_from_settingtypes.lua"))(parse_config_file(true, false))
diff --git a/builtin/mainmenu/generate_from_settingtypes.lua b/builtin/mainmenu/generate_from_settingtypes.lua
new file mode 100644
index 000000000..62d11b29b
--- /dev/null
+++ b/builtin/mainmenu/generate_from_settingtypes.lua
@@ -0,0 +1,99 @@
+local settings = ...
+
+local function create_minetest_conf_example()
+ local result = "# This file contains a list of all available settings and their default value for minetest.conf\n" ..
+ "\n" ..
+ "# By default, all the settings are commented and not functional.\n" ..
+ "# Uncomment settings by removing the preceding #.\n" ..
+ "\n" ..
+ "# minetest.conf is read by default from:\n" ..
+ "# ../minetest.conf\n" ..
+ "# ../../minetest.conf\n" ..
+ "# Any other path can be chosen by passing the path as a parameter\n" ..
+ "# to the program, eg. \"minetest.exe --config ../minetest.conf.example\".\n" ..
+ "\n" ..
+ "# Further documentation:\n" ..
+ "# http://wiki.minetest.net/\n" ..
+ "\n"
+
+ for _, entry in ipairs(settings) do
+ if entry.type == "category" then
+ if entry.level == 0 then
+ result = result .. "#\n# " .. entry.name .. "\n#\n\n"
+ else
+ for i = 1, entry.level do
+ result = result .. "#"
+ end
+ result = result .. "# " .. entry.name .. "\n\n"
+ end
+ else
+ if entry.comment ~= "" then
+ for _, comment_line in ipairs(entry.comment:split("\n", true)) do
+ result = result .."# " .. comment_line .. "\n"
+ end
+ end
+ result = result .. "# type: " .. entry.type
+ if entry.min then
+ result = result .. " min: " .. entry.min
+ end
+ if entry.max then
+ result = result .. " max: " .. entry.max
+ end
+ if entry.values then
+ result = result .. " values: " .. table.concat(entry.values, ", ")
+ end
+ if entry.possible then
+ result = result .. " possible values: " .. entry.possible:gsub(",", ", ")
+ end
+ result = result .. "\n"
+ local append = ""
+ if entry.default ~= "" then
+ append = " " .. entry.default
+ end
+ result = result .. "# " .. entry.name .. " =" .. append .. "\n\n"
+ end
+ end
+ return result
+end
+
+local function create_translation_file()
+ local result = "// This file is automatically generated\n" ..
+ "// It conatins a bunch of fake gettext calls, to tell xgettext about the strings in config files\n" ..
+ "// To update it, refer to the bottom of builtin/mainmenu/tab_settings.lua\n\n" ..
+ "fake_function() {\n"
+
+ for _, entry in ipairs(settings) do
+ if entry.type == "category" then
+ local name_escaped = entry.name:gsub("\"", "\\\"")
+ result = result .. "\tgettext(\"" .. name_escaped .. "\");\n"
+ else
+ if entry.readable_name then
+ local readable_name_escaped = entry.readable_name:gsub("\"", "\\\"")
+ result = result .. "\tgettext(\"" .. readable_name_escaped .. "\");\n"
+ end
+ if entry.comment ~= "" then
+ local comment_escaped = entry.comment:gsub("\n", "\\n")
+ comment_escaped = comment_escaped:gsub("\"", "\\\"")
+ result = result .. "\tgettext(\"" .. comment_escaped .. "\");\n"
+ end
+ end
+ end
+ result = result .. "}\n"
+ return result
+end
+
+if false then
+ local file = io.open("minetest.conf.example", "w")
+ if file then
+ file:write(create_minetest_conf_example())
+ file:close()
+ end
+end
+
+if false then
+ local file = io.open("src/settings_translation_file.cpp", "w")
+ if file then
+ file:write(create_translation_file())
+ file:close()
+ end
+end \ No newline at end of file