From 05dcddaeece0ca39cad2b5e093de4a9317b77923 Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Sun, 7 Nov 2021 13:14:48 -0500 Subject: [PATCH 1/2] Made plugin load order deterministic. --- data/core/init.lua | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/data/core/init.lua b/data/core/init.lua index 6ef0ab7e..6dd54cd4 100644 --- a/data/core/init.lua +++ b/data/core/init.lua @@ -675,16 +675,18 @@ function core.load_plugins() userdir = {dir = USERDIR, plugins = {}}, datadir = {dir = DATADIR, plugins = {}}, } - local files = {} + local files, ordered = {}, {} for _, root_dir in ipairs {DATADIR, USERDIR} do local plugin_dir = root_dir .. "/plugins" for _, filename in ipairs(system.list_dir(plugin_dir) or {}) do + if not files[filename] then table.insert(ordered, filename) end files[filename] = plugin_dir -- user plugins will always replace system plugins end end + table.sort(ordered) - for filename, plugin_dir in pairs(files) do - local basename = filename:match("(.-)%.lua$") or filename + for i, filename in ipairs(ordered) do + local plugin_dir, basename = files[filename], filename:match("(.-)%.lua$") or filename local is_lua_file, version_match = check_plugin_version(plugin_dir .. '/' .. filename) if is_lua_file then if not version_match then From 1376eaf54d3462a7dd144c1c8ca44ed48aaa07f9 Mon Sep 17 00:00:00 2001 From: Adam Harrison Date: Sun, 14 Nov 2021 15:40:23 -0500 Subject: [PATCH 2/2] Made varaible anonymous. --- data/core/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/core/init.lua b/data/core/init.lua index 6dd54cd4..13d0907b 100644 --- a/data/core/init.lua +++ b/data/core/init.lua @@ -685,7 +685,7 @@ function core.load_plugins() end table.sort(ordered) - for i, filename in ipairs(ordered) do + for _, filename in ipairs(ordered) do local plugin_dir, basename = files[filename], filename:match("(.-)%.lua$") or filename local is_lua_file, version_match = check_plugin_version(plugin_dir .. '/' .. filename) if is_lua_file then