diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2016-10-12 14:32:31 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-12 14:32:31 -0500 |
| commit | 5610025dfdda1f58d9ee201ef2b32e63bd612c6d (patch) | |
| tree | d8ba60e8ec896c3506fdb44e9670d820b9cbfc24 /src | |
| parent | d0edbc1873ca9165d968752a67fabc4f580856df (diff) | |
| parent | 8ce99cc3d2d12eb0b0e4808e5dd1fc402b8603d4 (diff) | |
| download | luarocks-5610025dfdda1f58d9ee201ef2b32e63bd612c6d.tar.gz luarocks-5610025dfdda1f58d9ee201ef2b32e63bd612c6d.tar.bz2 luarocks-5610025dfdda1f58d9ee201ef2b32e63bd612c6d.zip | |
Merge pull request #628 from mpeterv/fix-find-providers
Fix manif.find_{current,next}_provider returning "untracked" incorrectly
Diffstat (limited to 'src')
| -rw-r--r-- | src/luarocks/manif.lua | 11 |
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 |
| 465 | end | 465 | end |
| 466 | 466 | ||
| 467 | local 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("^[\\/]*", "")) | ||
| 470 | end | ||
| 471 | |||
| 467 | local function find_providers(file, root) | 472 | local 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 |
