summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordaurnimator <quae@daurnimator.com>2019-08-31 11:01:01 +1000
committerHisham Muhammad <hisham@gobolinux.org>2019-09-03 15:00:01 -0300
commit929d335e2bfad0083f161007d40fbc34738c1f8a (patch)
tree1697a5c320d2791f799e57248c5b7838d6679dc5
parentb9c4095511d8048910fbcb67865ec6eb86283bc6 (diff)
downloadluarocks-929d335e2bfad0083f161007d40fbc34738c1f8a.tar.gz
luarocks-929d335e2bfad0083f161007d40fbc34738c1f8a.tar.bz2
luarocks-929d335e2bfad0083f161007d40fbc34738c1f8a.zip
cmd: avoid changing add_to_parser if command is missing
-rw-r--r--src/luarocks/cmd.lua25
1 files changed, 12 insertions, 13 deletions
diff --git a/src/luarocks/cmd.lua b/src/luarocks/cmd.lua
index eba5e9a8..093fe768 100644
--- a/src/luarocks/cmd.lua
+++ b/src/luarocks/cmd.lua
@@ -11,7 +11,7 @@ local fun = require("luarocks.fun")
11local fs = require("luarocks.fs") 11local fs = require("luarocks.fs")
12local argparse = require("luarocks.argparse") 12local argparse = require("luarocks.argparse")
13 13
14local unpack = unpack or table.unpack 14local unpack = table.unpack or unpack
15 15
16local hc_ok, hardcoded = pcall(require, "luarocks.core.hardcoded") 16local hc_ok, hardcoded = pcall(require, "luarocks.core.hardcoded")
17if not hc_ok then 17if not hc_ok then
@@ -462,22 +462,21 @@ function cmd.run_command(description, commands, external_namespace, ...)
462 for name, module in pairs(commands) do 462 for name, module in pairs(commands) do
463 local pok, mod = pcall(require, module) 463 local pok, mod = pcall(require, module)
464 if pok and type(mod) == "table" then 464 if pok and type(mod) == "table" then
465 if not mod.add_to_parser then 465 local original_command = mod.command
466 mod.add_to_parser = function(parser) 466 if original_command then
467 parser:command(name, mod.help, util.see_also()) 467 if not mod.add_to_parser then
468 :summary(mod.help_summary) 468 mod.add_to_parser = function(parser)
469 :handle_options(false) 469 parser:command(name, mod.help, util.see_also())
470 :argument("input") 470 :summary(mod.help_summary)
471 :args("*") 471 :handle_options(false)
472 end 472 :argument("input")
473 local original_command = mod.command 473 :args("*")
474 if original_command then 474 end
475
475 mod.command = function(args) 476 mod.command = function(args)
476 return original_command(args, unpack(args.input)) 477 return original_command(args, unpack(args.input))
477 end 478 end
478 end 479 end
479 end
480 if mod.command then
481 cmd_modules[name] = mod 480 cmd_modules[name] = mod
482 else 481 else
483 util.warning("command module " .. module .. " does not implement command(), skipping") 482 util.warning("command module " .. module .. " does not implement command(), skipping")