diff options
| -rw-r--r-- | spec/util_spec.lua | 14 | ||||
| -rw-r--r-- | src/luarocks/core/util.lua | 6 |
2 files changed, 19 insertions, 1 deletions
diff --git a/spec/util_spec.lua b/spec/util_spec.lua index cbdde095..930a5aea 100644 --- a/spec/util_spec.lua +++ b/spec/util_spec.lua | |||
| @@ -155,4 +155,18 @@ describe("Luarocks util test #unit", function() | |||
| 155 | assert.truthy(result:find("[\"e\"] = \"4\"", 1, true)) | 155 | assert.truthy(result:find("[\"e\"] = \"4\"", 1, true)) |
| 156 | end) | 156 | end) |
| 157 | end) | 157 | end) |
| 158 | |||
| 159 | describe("core.util.cleanup_path", function() | ||
| 160 | it("rewrites versions that do not match the provided version", function() | ||
| 161 | local expected = 'a/b/lua/5.3/?.lua;a/b/c/lua/5.3/?.lua' | ||
| 162 | local result = core_util.cleanup_path('a/b/lua/5.2/?.lua;a/b/c/lua/5.3/?.lua', ';', '5.3') | ||
| 163 | assert.are.equal(expected, result) | ||
| 164 | end) | ||
| 165 | |||
| 166 | it("does not rewrite versions for which the provided version is a substring", function() | ||
| 167 | local expected = 'a/b/lua/5.3/?.lua;a/b/c/lua/5.3.4/?.lua' | ||
| 168 | local result = core_util.cleanup_path('a/b/lua/5.2/?.lua;a/b/c/lua/5.3.4/?.lua', ';', '5.3') | ||
| 169 | assert.are.equal(expected, result) | ||
| 170 | end) | ||
| 171 | end) | ||
| 158 | end) | 172 | end) |
diff --git a/src/luarocks/core/util.lua b/src/luarocks/core/util.lua index daec9d05..5f5c0fe1 100644 --- a/src/luarocks/core/util.lua +++ b/src/luarocks/core/util.lua | |||
| @@ -166,7 +166,11 @@ function util.cleanup_path(list, sep, lua_version) | |||
| 166 | for _, part in ipairs(parts) do | 166 | for _, part in ipairs(parts) do |
| 167 | part = part:gsub("//", "/") | 167 | part = part:gsub("//", "/") |
| 168 | if lua_version then | 168 | if lua_version then |
| 169 | part = part:gsub("/lua/[%d.]+/", "/lua/"..lua_version.."/") | 169 | part = part:gsub("/lua/([%d.]+)/", function(part_version) |
| 170 | if part_version:sub(1, #lua_version) ~= lua_version then | ||
| 171 | return "/lua/"..lua_version.."/" | ||
| 172 | end | ||
| 173 | end) | ||
| 170 | end | 174 | end |
| 171 | if not entries[part] then | 175 | if not entries[part] then |
| 172 | table.insert(final, part) | 176 | table.insert(final, part) |
