aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/manif.lua11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/luarocks/manif.lua b/src/luarocks/manif.lua
index e30c2a33..48b4f23d 100644
--- a/src/luarocks/manif.lua
+++ b/src/luarocks/manif.lua
@@ -464,6 +464,11 @@ function manif.zip_manifests()
464 end 464 end
465end 465end
466 466
467local function relative_path(from_dir, to_file)
468 -- It is assumed that `from_dir` is prefix of `to_file`.
469 return (to_file:sub(#from_dir + 1):gsub("^[\\/]*", ""))
470end
471
467local function find_providers(file, root) 472local function find_providers(file, root)
468 assert(type(file) == "string") 473 assert(type(file) == "string")
469 root = root or cfg.root_dir 474 root = root or cfg.root_dir
@@ -479,13 +484,13 @@ local function find_providers(file, root)
479 484
480 if util.starts_with(file, deploy_lua) then 485 if util.starts_with(file, deploy_lua) then
481 manifest_tbl = manifest.modules 486 manifest_tbl = manifest.modules
482 key = path.path_to_module(file:sub(#deploy_lua+1):gsub("\\", "/")) 487 key = path.path_to_module(relative_path(deploy_lua, file):gsub("\\", "/"))
483 elseif util.starts_with(file, deploy_lib) then 488 elseif util.starts_with(file, deploy_lib) then
484 manifest_tbl = manifest.modules 489 manifest_tbl = manifest.modules
485 key = path.path_to_module(file:sub(#deploy_lib+1):gsub("\\", "/")) 490 key = path.path_to_module(relative_path(deploy_lib, file):gsub("\\", "/"))
486 elseif util.starts_with(file, deploy_bin) then 491 elseif util.starts_with(file, deploy_bin) then
487 manifest_tbl = manifest.commands 492 manifest_tbl = manifest.commands
488 key = file:sub(#deploy_bin+1):gsub("^[\\/]*", "") 493 key = relative_path(deploy_bin, file)
489 else 494 else
490 assert(false, "Assertion failed: '"..file.."' is not a deployed file.") 495 assert(false, "Assertion failed: '"..file.."' is not a deployed file.")
491 end 496 end