diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2012-09-24 18:24:56 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2012-09-24 18:24:56 -0300 |
commit | 544a0963689fe14fc3cdb0fb6fa1dcb8b2f63bda (patch) | |
tree | 6fb71b13e9804781976aa27a5e19f060d2b77cc3 /src | |
parent | b20c561b8fcfcf4cecfd8fbb40ea7857193a4f8c (diff) | |
download | luarocks-544a0963689fe14fc3cdb0fb6fa1dcb8b2f63bda.tar.gz luarocks-544a0963689fe14fc3cdb0fb6fa1dcb8b2f63bda.tar.bz2 luarocks-544a0963689fe14fc3cdb0fb6fa1dcb8b2f63bda.zip |
Show module filenames in 'luarocks show'.
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/loader.lua | 20 | ||||
-rw-r--r-- | src/luarocks/path.lua | 43 | ||||
-rw-r--r-- | src/luarocks/show.lua | 20 |
3 files changed, 62 insertions, 21 deletions
diff --git a/src/luarocks/loader.lua b/src/luarocks/loader.lua index 139bcb8b..a116766c 100644 --- a/src/luarocks/loader.lua +++ b/src/luarocks/loader.lua | |||
@@ -184,25 +184,9 @@ end | |||
184 | 184 | ||
185 | --- Return the pathname of the file that would be loaded for a module. | 185 | --- Return the pathname of the file that would be loaded for a module. |
186 | -- @param module string: module name (eg. "socket.core") | 186 | -- @param module string: module name (eg. "socket.core") |
187 | -- @return string, string, string: name of the rock containing the module | 187 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") |
188 | -- (eg. "luasocket"), version of the rock (eg. "2.0.2-1"), | ||
189 | -- filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | ||
190 | function which(module) | 188 | function which(module) |
191 | local name, version, module_name = | 189 | local name, version, module_name = select_module(module, path.which_i) |
192 | select_module(module, function(module_name, name, version, tree, i) | ||
193 | local deploy_dir | ||
194 | if module_name:match("%.lua$") then | ||
195 | deploy_dir = path.deploy_lua_dir(tree) | ||
196 | module_name = deploy_dir.."/"..module_name | ||
197 | else | ||
198 | deploy_dir = path.deploy_lib_dir(tree) | ||
199 | module_name = deploy_dir.."/"..module_name | ||
200 | end | ||
201 | if i > 1 then | ||
202 | module_name = path.versioned_name(module_name, deploy_dir, name, version) | ||
203 | end | ||
204 | return module_name | ||
205 | end) | ||
206 | return module_name | 190 | return module_name |
207 | end | 191 | end |
208 | 192 | ||
diff --git a/src/luarocks/path.lua b/src/luarocks/path.lua index 1c94b639..bbd928a0 100644 --- a/src/luarocks/path.lua +++ b/src/luarocks/path.lua | |||
@@ -305,6 +305,49 @@ function use_tree(tree) | |||
305 | cfg.deploy_lib_dir = deploy_lib_dir(tree) | 305 | cfg.deploy_lib_dir = deploy_lib_dir(tree) |
306 | end | 306 | end |
307 | 307 | ||
308 | --- Return the pathname of the file that would be loaded for a module, indexed. | ||
309 | -- @param module_name string: module name (eg. "socket.core") | ||
310 | -- @param name string: name of the package (eg. "luasocket") | ||
311 | -- @param version string: version number (eg. "2.0.2-1") | ||
312 | -- @param tree string: repository path (eg. "/usr/local") | ||
313 | -- @param i number: the index, 1 if version is the current default, > 1 otherwise. | ||
314 | -- This is done this way for use by select_module in luarocks.loader. | ||
315 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | ||
316 | function which_i(module_name, name, version, tree, i) | ||
317 | local deploy_dir | ||
318 | if module_name:match("%.lua$") then | ||
319 | deploy_dir = deploy_lua_dir(tree) | ||
320 | module_name = dir.path(deploy_dir, module_name) | ||
321 | else | ||
322 | deploy_dir = deploy_lib_dir(tree) | ||
323 | module_name = dir.path(deploy_dir, module_name) | ||
324 | end | ||
325 | if i > 1 then | ||
326 | module_name = versioned_name(module_name, deploy_dir, name, version) | ||
327 | end | ||
328 | return module_name | ||
329 | end | ||
330 | |||
331 | --- Return the pathname of the file that would be loaded for a module, | ||
332 | -- returning the versioned pathname if given version is not the default version | ||
333 | -- in the given manifest. | ||
334 | -- @param module_name string: module name (eg. "socket.core") | ||
335 | -- @param name string: name of the package (eg. "luasocket") | ||
336 | -- @param version string: version number (eg. "2.0.2-1") | ||
337 | -- @param tree string: repository path (eg. "/usr/local") | ||
338 | -- @param manifest table: the manifest table for the tree. | ||
339 | -- @return string: filename of the module (eg. "/usr/local/lib/lua/5.1/socket/core.so") | ||
340 | function which(module_name, filename, name, version, tree, manifest) | ||
341 | local versions = manifest.modules[module_name] | ||
342 | assert(versions) | ||
343 | for i, name_version in ipairs(versions) do | ||
344 | if name_version == name.."/"..version then | ||
345 | return which_i(filename, name, version, tree, i):gsub("//", "/") | ||
346 | end | ||
347 | end | ||
348 | assert(false) | ||
349 | end | ||
350 | |||
308 | --- Driver function for "path" command. | 351 | --- Driver function for "path" command. |
309 | -- @return boolean This function always succeeds. | 352 | -- @return boolean This function always succeeds. |
310 | function run(...) | 353 | function run(...) |
diff --git a/src/luarocks/show.lua b/src/luarocks/show.lua index 5a052b58..68c1a738 100644 --- a/src/luarocks/show.lua +++ b/src/luarocks/show.lua | |||
@@ -55,6 +55,17 @@ local function format_text(text) | |||
55 | return (table.concat(paragraphs, "\n\n"):gsub("%s$", "")) | 55 | return (table.concat(paragraphs, "\n\n"):gsub("%s$", "")) |
56 | end | 56 | end |
57 | 57 | ||
58 | local function module_name(mod, filename, name, version, repo, manifest) | ||
59 | local base_dir | ||
60 | if filename:match("%.lua$") then | ||
61 | base_dir = path.deploy_lua_dir(repo) | ||
62 | else | ||
63 | base_dir = path.deploy_lib_dir(repo) | ||
64 | end | ||
65 | |||
66 | return dir.path(base_dir, filename) | ||
67 | end | ||
68 | |||
58 | --- Driver function for "show" command. | 69 | --- Driver function for "show" command. |
59 | -- @param name or nil: an existing package name. | 70 | -- @param name or nil: an existing package name. |
60 | -- @param version string or nil: a version may also be passed. | 71 | -- @param version string or nil: a version may also be passed. |
@@ -75,10 +86,11 @@ function run(...) | |||
75 | end | 86 | end |
76 | 87 | ||
77 | if not next(results) then -- | 88 | if not next(results) then -- |
78 | return nil,"cannot find package "..name.."\nUse 'list' to find installed rocks" | 89 | return nil,"cannot find package "..name.." "..version.."\nUse 'list' to find installed rocks." |
79 | end | 90 | end |
80 | 91 | ||
81 | local version,repo_url | 92 | version = nil |
93 | local repo_url | ||
82 | local package, versions = util.sortedpairs(results)() | 94 | local package, versions = util.sortedpairs(results)() |
83 | --question: what do we do about multiple versions? This should | 95 | --question: what do we do about multiple versions? This should |
84 | --give us the latest version on the last repo (which is usually the global one) | 96 | --give us the latest version on the last repo (which is usually the global one) |
@@ -124,7 +136,9 @@ function run(...) | |||
124 | if next(minfo.modules) then | 136 | if next(minfo.modules) then |
125 | util.printout() | 137 | util.printout() |
126 | util.printout("Modules:") | 138 | util.printout("Modules:") |
127 | util.printout("\t"..keys_as_string(minfo.modules, "\n\t")) | 139 | for mod, filename in util.sortedpairs(minfo.modules) do |
140 | util.printout("\t"..mod.." ("..path.which(mod, filename, name, version, repo, manifest)..")") | ||
141 | end | ||
128 | end | 142 | end |
129 | if next(minfo.dependencies) then | 143 | if next(minfo.dependencies) then |
130 | util.printout() | 144 | util.printout() |