diff options
| author | mpeterv <mpeterval@gmail.com> | 2016-02-02 17:34:50 +0300 |
|---|---|---|
| committer | mpeterv <mpeterval@gmail.com> | 2016-02-02 17:42:05 +0300 |
| commit | d9ffeaf66f77dc9321a574f6aec2df1785acb8e5 (patch) | |
| tree | 9024aa6296dacc65b278d0e5beead87513a669de | |
| parent | 79f5022066c4d801d973769fe092280e24461cc2 (diff) | |
| download | luarocks-d9ffeaf66f77dc9321a574f6aec2df1785acb8e5.tar.gz luarocks-d9ffeaf66f77dc9321a574f6aec2df1785acb8e5.tar.bz2 luarocks-d9ffeaf66f77dc9321a574f6aec2df1785acb8e5.zip | |
Fix docs for path.which_i and some of its users
It actually accepts file name of the module as in
manifest.repository[package][version].modules[module], not the
module name.
| -rw-r--r-- | src/luarocks/loader.lua | 29 | ||||
| -rw-r--r-- | src/luarocks/path.lua | 19 |
2 files changed, 24 insertions, 24 deletions
diff --git a/src/luarocks/loader.lua b/src/luarocks/loader.lua index ba15613e..26280e94 100644 --- a/src/luarocks/loader.lua +++ b/src/luarocks/loader.lua | |||
| @@ -126,17 +126,17 @@ end | |||
| 126 | 126 | ||
| 127 | --- Search for a module in the rocks trees | 127 | --- Search for a module in the rocks trees |
| 128 | -- @param module string: module name (eg. "socket.core") | 128 | -- @param module string: module name (eg. "socket.core") |
| 129 | -- @param filter_module_name function(string, string, string, string, number): | 129 | -- @param filter_file_name function(string, string, string, string, number): |
| 130 | -- a function that takes the module name (eg "socket.core"), the rock name | 130 | -- a function that takes the module file name (eg "socket/core.so"), the rock name |
| 131 | -- (eg "luasocket"), the version (eg "2.0.2-1"), the path of the rocks tree | 131 | -- (eg "luasocket"), the version (eg "2.0.2-1"), the path of the rocks tree |
| 132 | -- (eg "/usr/local"), and the numeric index of the matching entry, so the | 132 | -- (eg "/usr/local"), and the numeric index of the matching entry, so the |
| 133 | -- filter function can know if the matching module was the first entry or not. | 133 | -- filter function can know if the matching module was the first entry or not. |
| 134 | -- @return string, string, string, (string or table): | 134 | -- @return string, string, string, (string or table): |
| 135 | -- * name of the rock containing the module (eg. "luasocket") | 135 | -- * name of the rock containing the module (eg. "luasocket") |
| 136 | -- * version of the rock (eg. "2.0.2-1") | 136 | -- * version of the rock (eg. "2.0.2-1") |
| 137 | -- * name of the module (eg. "socket.core", or "socket.core_2_0_2" if file is stored versioned). | 137 | -- * return value of filter_file_name |
| 138 | -- * tree of the module (string or table in `rocks_trees` format) | 138 | -- * tree of the module (string or table in `rocks_trees` format) |
| 139 | local function select_module(module, filter_module_name) | 139 | local function select_module(module, filter_file_name) |
| 140 | --assert(type(module) == "string") | 140 | --assert(type(module) == "string") |
| 141 | --assert(type(filter_module_name) == "function") | 141 | --assert(type(filter_module_name) == "function") |
| 142 | 142 | ||
| @@ -150,16 +150,16 @@ local function select_module(module, filter_module_name) | |||
| 150 | if entries then | 150 | if entries then |
| 151 | for i, entry in ipairs(entries) do | 151 | for i, entry in ipairs(entries) do |
| 152 | local name, version = entry:match("^([^/]*)/(.*)$") | 152 | local name, version = entry:match("^([^/]*)/(.*)$") |
| 153 | local module_name = tree.manifest.repository[name][version][1].modules[module] | 153 | local file_name = tree.manifest.repository[name][version][1].modules[module] |
| 154 | if type(module_name) ~= "string" then | 154 | if type(file_name) ~= "string" then |
| 155 | error("Invalid data in manifest file for module "..tostring(module).." (invalid data for "..tostring(name).." "..tostring(version)..")") | 155 | error("Invalid data in manifest file for module "..tostring(module).." (invalid data for "..tostring(name).." "..tostring(version)..")") |
| 156 | end | 156 | end |
| 157 | module_name = filter_module_name(module_name, name, version, tree.tree, i) | 157 | file_name = filter_file_name(file_name, name, version, tree.tree, i) |
| 158 | if loader.context[name] == version then | 158 | if loader.context[name] == version then |
| 159 | return name, version, module_name | 159 | return name, version, file_name |
| 160 | end | 160 | end |
| 161 | version = deps.parse_version(version) | 161 | version = deps.parse_version(version) |
| 162 | table.insert(providers, {name = name, version = version, module_name = module_name, tree = tree}) | 162 | table.insert(providers, {name = name, version = version, module_name = file_name, tree = tree}) |
| 163 | end | 163 | end |
| 164 | end | 164 | end |
| 165 | end | 165 | end |
| @@ -180,12 +180,11 @@ end | |||
| 180 | -- * tree of the module (string or table in `rocks_trees` format) | 180 | -- * tree of the module (string or table in `rocks_trees` format) |
| 181 | local function pick_module(module) | 181 | local function pick_module(module) |
| 182 | return | 182 | return |
| 183 | select_module(module, function(module_name, name, version, tree, i) | 183 | select_module(module, function(file_name, name, version, tree, i) |
| 184 | if i > 1 then | 184 | if i > 1 then |
| 185 | module_name = path.versioned_name(module_name, "", name, version) | 185 | file_name = path.versioned_name(file_name, "", name, version) |
| 186 | end | 186 | end |
| 187 | module_name = path.path_to_module(module_name) | 187 | return path.path_to_module(file_name) |
| 188 | return module_name | ||
| 189 | end) | 188 | end) |
| 190 | end | 189 | end |
| 191 | 190 | ||
| @@ -193,8 +192,8 @@ end | |||
| 193 | -- @param module string: module name (eg. "socket.core") | 192 | -- @param module string: module name (eg. "socket.core") |
| 194 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | 193 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") |
| 195 | function loader.which(module) | 194 | function loader.which(module) |
| 196 | local name, version, module_name = select_module(module, path.which_i) | 195 | local _, _, file_name = select_module(module, path.which_i) |
| 197 | return module_name | 196 | return file_name |
| 198 | end | 197 | end |
| 199 | 198 | ||
| 200 | --- Package loader for LuaRocks support. | 199 | --- Package loader for LuaRocks support. |
diff --git a/src/luarocks/path.lua b/src/luarocks/path.lua index fb5eec7e..bc7ab63b 100644 --- a/src/luarocks/path.lua +++ b/src/luarocks/path.lua | |||
| @@ -342,44 +342,45 @@ end | |||
| 342 | local is_src_extension = { [".lua"] = true, [".tl"] = true, [".tld"] = true, [".moon"] = true } | 342 | local is_src_extension = { [".lua"] = true, [".tl"] = true, [".tld"] = true, [".moon"] = true } |
| 343 | 343 | ||
| 344 | --- Return the pathname of the file that would be loaded for a module, indexed. | 344 | --- Return the pathname of the file that would be loaded for a module, indexed. |
| 345 | -- @param module_name string: module name (eg. "socket.core") | 345 | -- @param file_name string: module file name as in manifest (eg. "socket/core.so") |
| 346 | -- @param name string: name of the package (eg. "luasocket") | 346 | -- @param name string: name of the package (eg. "luasocket") |
| 347 | -- @param version string: version number (eg. "2.0.2-1") | 347 | -- @param version string: version number (eg. "2.0.2-1") |
| 348 | -- @param tree string: repository path (eg. "/usr/local") | 348 | -- @param tree string: repository path (eg. "/usr/local") |
| 349 | -- @param i number: the index, 1 if version is the current default, > 1 otherwise. | 349 | -- @param i number: the index, 1 if version is the current default, > 1 otherwise. |
| 350 | -- This is done this way for use by select_module in luarocks.loader. | 350 | -- This is done this way for use by select_module in luarocks.loader. |
| 351 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | 351 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") |
| 352 | function path.which_i(module_name, name, version, tree, i) | 352 | function path.which_i(file_name, name, version, tree, i) |
| 353 | local deploy_dir | 353 | local deploy_dir |
| 354 | local extension = module_name:match("%.[a-z]+$") | 354 | local extension = file_name:match("%.[a-z]+$") |
| 355 | if is_src_extension[extension] then | 355 | if is_src_extension[extension] then |
| 356 | deploy_dir = path.deploy_lua_dir(tree) | 356 | deploy_dir = path.deploy_lua_dir(tree) |
| 357 | module_name = dir.path(deploy_dir, module_name) | 357 | file_name = dir.path(deploy_dir, file_name) |
| 358 | else | 358 | else |
| 359 | deploy_dir = path.deploy_lib_dir(tree) | 359 | deploy_dir = path.deploy_lib_dir(tree) |
| 360 | module_name = dir.path(deploy_dir, module_name) | 360 | file_name = dir.path(deploy_dir, file_name) |
| 361 | end | 361 | end |
| 362 | if i > 1 then | 362 | if i > 1 then |
| 363 | module_name = path.versioned_name(module_name, deploy_dir, name, version) | 363 | file_name = path.versioned_name(file_name, deploy_dir, name, version) |
| 364 | end | 364 | end |
| 365 | return module_name | 365 | return file_name |
| 366 | end | 366 | end |
| 367 | 367 | ||
| 368 | --- Return the pathname of the file that would be loaded for a module, | 368 | --- Return the pathname of the file that would be loaded for a module, |
| 369 | -- returning the versioned pathname if given version is not the default version | 369 | -- returning the versioned pathname if given version is not the default version |
| 370 | -- in the given manifest. | 370 | -- in the given manifest. |
| 371 | -- @param module_name string: module name (eg. "socket.core") | 371 | -- @param module_name string: module name (eg. "socket.core") |
| 372 | -- @param file_name string: module file name as in manifest (eg. "socket/core.so") | ||
| 372 | -- @param name string: name of the package (eg. "luasocket") | 373 | -- @param name string: name of the package (eg. "luasocket") |
| 373 | -- @param version string: version number (eg. "2.0.2-1") | 374 | -- @param version string: version number (eg. "2.0.2-1") |
| 374 | -- @param tree string: repository path (eg. "/usr/local") | 375 | -- @param tree string: repository path (eg. "/usr/local") |
| 375 | -- @param manifest table: the manifest table for the tree. | 376 | -- @param manifest table: the manifest table for the tree. |
| 376 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | 377 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") |
| 377 | function path.which(module_name, filename, name, version, tree, manifest) | 378 | function path.which(module_name, file_name, name, version, tree, manifest) |
| 378 | local versions = manifest.modules[module_name] | 379 | local versions = manifest.modules[module_name] |
| 379 | assert(versions) | 380 | assert(versions) |
| 380 | for i, name_version in ipairs(versions) do | 381 | for i, name_version in ipairs(versions) do |
| 381 | if name_version == name.."/"..version then | 382 | if name_version == name.."/"..version then |
| 382 | return path.which_i(filename, name, version, tree, i):gsub("//", "/") | 383 | return path.which_i(file_name, name, version, tree, i):gsub("//", "/") |
| 383 | end | 384 | end |
| 384 | end | 385 | end |
| 385 | assert(false) | 386 | assert(false) |
