From 9640b97e9a52ebe0648c5294f2006c32bb36593a Mon Sep 17 00:00:00 2001 From: Reuben Thomas Date: Tue, 25 Sep 2012 23:32:02 +0100 Subject: Improve support for parallel rocks trees with different Lua versions. Add support for LUAROCKS_SYSCONFIG_X_Y and LUAROCKS_CONFIG_X_Y, similar to LUA_PATH_5_2, but for any verison of Lua. Allow repository paths to contain extra components under "lib/luarocks", so for example you can have "lib/luarocks/5.1/rocks" and "lib/luarocks/5.2/rocks". --- src/luarocks/cfg.lua | 8 +++++--- src/luarocks/path.lua | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua index 41adb4e5..dfef7d99 100644 --- a/src/luarocks/cfg.lua +++ b/src/luarocks/cfg.lua @@ -98,16 +98,18 @@ end -- Path configuration: +local version_suffix = lua_version:gsub ("%.", "_") local sys_config_file, home_config_file local sys_config_ok, home_config_ok = false, false +sys_config_file = site_config["LUAROCKS_SYSCONFIG_" .. version_suffix] or site_config.LUAROCKS_SYSCONFIG if detected.windows then home = os.getenv("APPDATA") or "c:" - sys_config_file = site_config.LUAROCKS_SYSCONFIG or "c:/luarocks/config.lua" + sys_config_file = sys_config_file or "c:/luarocks/config.lua" home_config_file = home.."/luarocks/config.lua" home_tree = home.."/luarocks/" else home = os.getenv("HOME") or "" - sys_config_file = site_config.LUAROCKS_SYSCONFIG or "/etc/luarocks/config.lua" + sys_config_file = sys_config_file or "/etc/luarocks/config.lua" home_config_file = home.."/.luarocks/config.lua" home_tree = home.."/.luarocks/" end @@ -126,7 +128,7 @@ else -- nil or false end if not site_config.LUAROCKS_FORCE_CONFIG then - home_config_file = os.getenv("LUAROCKS_CONFIG") or home_config_file + home_config_file = os.getenv("LUAROCKS_CONFIG_" .. version_suffix) or os.getenv("LUAROCKS_CONFIG") or home_config_file local home_overrides, err = persist.load_into_table(home_config_file, { home = home }) if home_overrides then home_config_ok = true diff --git a/src/luarocks/path.lua b/src/luarocks/path.lua index bbd928a0..798f15a9 100644 --- a/src/luarocks/path.lua +++ b/src/luarocks/path.lua @@ -37,8 +37,8 @@ end function root_dir(rocks_dir) assert(type(rocks_dir) == "string") - local suffix = dir.path("lib", "luarocks", "rocks") - return rocks_dir:match("(.*)" .. suffix .. "$") + local suffix = dir.path("lib", "luarocks") + return rocks_dir:match("(.*)" .. suffix .. ".*$") end function deploy_bin_dir(tree) -- cgit v1.2.3-55-g6feb