aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/cfg.lua34
1 files changed, 25 insertions, 9 deletions
diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua
index 70c1bd04..66d3d25a 100644
--- a/src/luarocks/cfg.lua
+++ b/src/luarocks/cfg.lua
@@ -228,17 +228,33 @@ end
228if not site_config.LUAROCKS_FORCE_CONFIG then 228if not site_config.LUAROCKS_FORCE_CONFIG then
229 229
230 home_config_file_default = home_config_dir.."/config-"..cfg.lua_version..".lua" 230 home_config_file_default = home_config_dir.."/config-"..cfg.lua_version..".lua"
231 local list = {
232 os.getenv("LUAROCKS_CONFIG_" .. version_suffix) or os.getenv("LUAROCKS_CONFIG"),
233 home_config_file_default,
234 home_config_dir.."/config.lua",
235 }
236 -- first entry might be a silent nil, check and remove if so
237 if not list[1] then table.remove(list, 1) end
238 231
239 home_config_file = load_config_file(list) 232 local config_env_var = "LUAROCKS_CONFIG_" .. version_suffix
240 home_config_ok = (home_config_file ~= nil) 233 local config_env_value = os.getenv(config_env_var)
234 if not config_env_value then
235 config_env_var = "LUAROCKS_CONFIG"
236 config_env_value = os.getenv(config_env_var)
237 end
238
239 -- first try environment provided file, so we can explicitly warn when it is missing
240 if config_env_value then
241 local list = { config_env_value }
242 home_config_file = load_config_file(list)
243 home_config_ok = (home_config_file ~= nil)
244 if not home_config_ok then
245 io.stderr:write("Warning: could not load configuration file `"..config_env_value.."` given in environment variable "..config_env_var.."\n")
246 end
247 end
241 248
249 -- try the alternative defaults if there was no environment specified file or it didn't work
250 if not home_config_ok then
251 local list = {
252 home_config_file_default,
253 home_config_dir.."/config.lua",
254 }
255 home_config_file = load_config_file(list)
256 home_config_ok = (home_config_file ~= nil)
257 end
242end 258end
243 259
244 260