From 271271c059c6c1b4278417a452d48f75b01a6631 Mon Sep 17 00:00:00 2001 From: Xertis Date: Fri, 27 Dec 2024 10:13:37 +0300 Subject: [PATCH] add valid config names --- res/layouts/pages/content_menu.xml.lua | 31 +++++++++++++++++++------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/res/layouts/pages/content_menu.xml.lua b/res/layouts/pages/content_menu.xml.lua index dd07da39..6d730340 100644 --- a/res/layouts/pages/content_menu.xml.lua +++ b/res/layouts/pages/content_menu.xml.lua @@ -1,10 +1,14 @@ local packs_installed = {} local pack_open = {} -local parsers = { +local PARSERS = { toml = toml, json = json } +local CONFIG_NAMES = { + "config" +} + function on_open(params) refresh() end @@ -113,15 +117,26 @@ end local function load_config_file(path) - local extension = path:match("%.(%w+)$") + local function valid_name(file_name) + for _, name in ipairs(CONFIG_NAMES) do + if string.find(file_name, name) then + return true + end + end + + return false + end + + local extension = path:match("^.+%.(.+)$") + local name = path:match("([^/]+)%.([^%.]+)$") if not extension or file.isdir(path) then return end - if parsers[extension] then + if PARSERS[extension] and valid_name(name:lower()) then local value = file.read(path) - return parsers[extension].parse(value), extension + return PARSERS[extension].parse(value), extension end end @@ -154,8 +169,8 @@ end local function valid_configs(path) if file.exists(path) and file.isdir(path) then for _, c in ipairs(file.list(path)) do - local extension = c:match("%.(%w+)$") - if parsers[extension] then + local extension = c:match("^.+%.(.+)$") + if PARSERS[extension] then return true end end @@ -176,8 +191,8 @@ function set_value(name, id, value) local config, extension = load_config_file(path) config[name] = value - if parsers[extension] then - file.write(path, parsers[extension].tostring(config)) + if PARSERS[extension] then + file.write(path, PARSERS[extension].tostring(config)) end end