From f6974b40735b9300f7b529da6e602459d0db9c49 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Thu, 25 Jun 2015 00:14:50 +0200 Subject: config.lua is not being integrated, bug introduced in #385 --- src/luarocks/cfg.lua | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index 2a92c4dd..03fc2ad2 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -159,6 +159,16 @@ env_for_config_file = { print(util.show_table(env_for_config_file, "global environment")) end, } +-- Merge values from config files read into the `cfg` table +local merge_overrides = function(overrides) + if overrides.rocks_trees then + cfg.rocks_trees = nil + end + if overrides.rocks_servers then + cfg.rocks_servers = nil + end + util.deep_merge(cfg, overrides) +end sys_config_file = site_config.LUAROCKS_SYSCONFIG or sys_config_dir.."/config-"..cfg.lua_version..".lua" do @@ -172,6 +182,7 @@ do io.stderr:write(err.."\n") os.exit(cfg.errorcodes.CONFIGFILE) end + merge_overrides(sys_config_ok) end if not site_config.LUAROCKS_FORCE_CONFIG then @@ -190,13 +201,7 @@ if not site_config.LUAROCKS_FORCE_CONFIG then end if home_overrides then home_config_ok = true - if home_overrides.rocks_trees then - cfg.rocks_trees = nil - end - if home_overrides.rocks_servers then - cfg.rocks_servers = nil - end - util.deep_merge(cfg, home_overrides) + merge_overrides(home_overrides) else home_config_ok = home_overrides if errcode ~= "open" then @@ -220,6 +225,7 @@ end local defaults = { local_by_default = false, + use_extensions = false, accept_unknown_fields = false, fs_use_modules = true, hooks_enabled = true, -- cgit v1.2.3-55-g6feb From e87c898a19b54de52e959014377f7658b363b7be Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Thu, 25 Jun 2015 00:23:15 +0200 Subject: removed accidental reintroduced line --- src/luarocks/cfg.lua | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index 03fc2ad2..6a49c842 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -225,7 +225,6 @@ end local defaults = { local_by_default = false, - use_extensions = false, accept_unknown_fields = false, fs_use_modules = true, hooks_enabled = true, -- cgit v1.2.3-55-g6feb From 1a85cb5c7d23e041d2787e097fecbd4524a86792 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Thu, 25 Jun 2015 00:29:28 +0200 Subject: fix travis-ci error --- src/luarocks/cfg.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index 6a49c842..2d3bb8bd 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -182,7 +182,9 @@ do io.stderr:write(err.."\n") os.exit(cfg.errorcodes.CONFIGFILE) end - merge_overrides(sys_config_ok) + if sys_config_ok then + merge_overrides(sys_config_ok) + end end if not site_config.LUAROCKS_FORCE_CONFIG then -- cgit v1.2.3-55-g6feb From 3b58640f79c114e651e53858afee94bd7e7eb52d Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Thu, 25 Jun 2015 12:14:04 +0200 Subject: do not reuse environments --- src/luarocks/cfg.lua | 57 ++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 26 deletions(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index 2d3bb8bd..8321e9b9 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -144,39 +144,44 @@ end cfg.variables = {} cfg.rocks_trees = {} --- The global environment in the config files; -local env_for_config_file -env_for_config_file = { - home = cfg.home, - lua_version = cfg.lua_version, - platform = util.make_shallow_copy(detected), - processor = cfg.target_cpu, -- remains for compat reasons - target_cpu = cfg.target_cpu, -- replaces `processor` - os_getenv = os.getenv, - dump_env = function() - -- debug function, calling it from a config file will show all - -- available globals to that config file - print(util.show_table(env_for_config_file, "global environment")) - end, -} +-- Create global environment for the config files; +local env_for_config_file = function() + local e + e = { + home = cfg.home, + lua_version = cfg.lua_version, + platform = util.make_shallow_copy(detected), + processor = cfg.target_cpu, -- remains for compat reasons + target_cpu = cfg.target_cpu, -- replaces `processor` + os_getenv = os.getenv, + dump_env = function() + -- debug function, calling it from a config file will show all + -- available globals to that config file + print(util.show_table(e, "global environment")) + end, + } + return e +end + -- Merge values from config files read into the `cfg` table local merge_overrides = function(overrides) - if overrides.rocks_trees then - cfg.rocks_trees = nil - end - if overrides.rocks_servers then - cfg.rocks_servers = nil - end + -- remove some stuff we do not want to integrate + overrides.os_getenv = nil + overrides.dump_env = nil + -- remove tables to be copied verbatim instead of deeply merged + if overrides.rocks_trees then cfg.rocks_trees = nil end + if overrides.rocks_servers then cfg.rocks_servers = nil end + -- perform actual merge util.deep_merge(cfg, overrides) end sys_config_file = site_config.LUAROCKS_SYSCONFIG or sys_config_dir.."/config-"..cfg.lua_version..".lua" do local err, errcode - sys_config_ok, err, errcode = persist.load_into_table(sys_config_file, env_for_config_file) + sys_config_ok, err, errcode = persist.load_into_table(sys_config_file, env_for_config_file()) if (not sys_config_ok) and errcode == "open" then -- file not found, so try alternate file sys_config_file = sys_config_dir.."/config.lua" - sys_config_ok, err, errcode = persist.load_into_table(sys_config_file, env_for_config_file) + sys_config_ok, err, errcode = persist.load_into_table(sys_config_file, env_for_config_file()) end if (not sys_config_ok) and errcode ~= "open" then -- either "load" or "run"; bad config file, bail out with error io.stderr:write(err.."\n") @@ -192,13 +197,13 @@ if not site_config.LUAROCKS_FORCE_CONFIG then local home_overrides, err, errcode home_config_file = os.getenv("LUAROCKS_CONFIG_" .. version_suffix) or os.getenv("LUAROCKS_CONFIG") if home_config_file then - home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file) + home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file()) else home_config_file = home_config_dir.."/config-"..cfg.lua_version..".lua" - home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file) + home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file()) if (not home_overrides) and (not errcode == "run") then home_config_file = home_config_dir.."/config.lua" - home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file) + home_overrides, err, errcode = persist.load_into_table(home_config_file, env_for_config_file()) end end if home_overrides then -- cgit v1.2.3-55-g6feb