aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2016-03-23 14:57:03 -0300
committerHisham Muhammad <hisham@gobolinux.org>2016-03-23 14:57:03 -0300
commit4708a828d478fb06529effd7cf5f63d9b6be20c7 (patch)
tree4c83ebccd859187f8d11252458f653e731124462 /src
parentd715fe5545bd639b2f4c97dc22a7a33b060b48d0 (diff)
parent0af7e42eb7814424ce8365897593abb9fc62ce14 (diff)
downloadluarocks-4708a828d478fb06529effd7cf5f63d9b6be20c7.tar.gz
luarocks-4708a828d478fb06529effd7cf5f63d9b6be20c7.tar.bz2
luarocks-4708a828d478fb06529effd7cf5f63d9b6be20c7.zip
Merge pull request #499 from mpeterv/show-constraints
Show dependency constraints in `luarocks show`
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/show.lua34
1 files changed, 31 insertions, 3 deletions
diff --git a/src/luarocks/show.lua b/src/luarocks/show.lua
index 08b2673f..ae41a513 100644
--- a/src/luarocks/show.lua
+++ b/src/luarocks/show.lua
@@ -28,7 +28,9 @@ With these flags, return only the desired information:
28]] 28]]
29 29
30local function keys_as_string(t, sep) 30local function keys_as_string(t, sep)
31 return table.concat(util.keys(t), sep or " ") 31 local keys = util.keys(t)
32 table.sort(keys)
33 return table.concat(keys, sep or " ")
32end 34end
33 35
34local function word_wrap(line) 36local function word_wrap(line)
@@ -88,6 +90,16 @@ function show.pick_installed_rock(name, version, tree)
88 return name, version, repo, repo_url 90 return name, version, repo, repo_url
89end 91end
90 92
93local function installed_rock_label(name, tree)
94 local installed, version
95 if cfg.rocks_provided[name] then
96 installed, version = true, cfg.rocks_provided[name]
97 else
98 installed, version = show.pick_installed_rock(name, nil, tree)
99 end
100 return installed and "(using "..version..")" or "(missing)"
101end
102
91--- Driver function for "show" command. 103--- Driver function for "show" command.
92-- @param name or nil: an existing package name. 104-- @param name or nil: an existing package name.
93-- @param version string or nil: a version may also be passed. 105-- @param version string or nil: a version may also be passed.
@@ -143,10 +155,26 @@ function show.run(...)
143 util.printout("\t"..mod.." ("..path.which(mod, filename, name, version, repo, manifest)..")") 155 util.printout("\t"..mod.." ("..path.which(mod, filename, name, version, repo, manifest)..")")
144 end 156 end
145 end 157 end
146 if next(minfo.dependencies) then 158 local direct_deps = {}
159 if #rockspec.dependencies > 0 then
147 util.printout() 160 util.printout()
148 util.printout("Depends on:") 161 util.printout("Depends on:")
149 util.printout("\t"..keys_as_string(minfo.dependencies, "\n\t")) 162 for _, dep in ipairs(rockspec.dependencies) do
163 direct_deps[dep.name] = true
164 util.printout("\t"..deps.show_dep(dep).." "..installed_rock_label(dep.name, flags["tree"]))
165 end
166 end
167 local has_indirect_deps
168 for dep_name in util.sortedpairs(minfo.dependencies) do
169 if not direct_deps[dep_name] then
170 if not has_indirect_deps then
171 util.printout()
172 util.printout("Indirectly pulling:")
173 has_indirect_deps = true
174 end
175
176 util.printout("\t"..dep_name.." "..installed_rock_label(dep_name, flags["tree"]))
177 end
150 end 178 end
151 util.printout() 179 util.printout()
152 end 180 end