From ccf92207e1092ae339b74454168acca79af72d0e Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Fri, 30 Aug 2019 11:02:58 -0300 Subject: cmd: add compatibility mode for pre-argparse external commands See #1070. --- src/luarocks/cmd.lua | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src') diff --git a/src/luarocks/cmd.lua b/src/luarocks/cmd.lua index 126bbe76..328afe3f 100644 --- a/src/luarocks/cmd.lua +++ b/src/luarocks/cmd.lua @@ -11,6 +11,8 @@ local fun = require("luarocks.fun") local fs = require("luarocks.fs") local argparse = require("luarocks.argparse") +local unpack = unpack or table.unpack + local hc_ok, hardcoded = pcall(require, "luarocks.core.hardcoded") if not hc_ok then hardcoded = {} @@ -459,6 +461,19 @@ function cmd.run_command(description, commands, external_namespace, ...) local cmd_modules = {} for name, module in pairs(commands) do cmd_modules[name] = require(module) + if not cmd_modules[name].add_to_parser then + cmd_modules[name].add_to_parser = function(parser) + parser:command(name, cmd_modules[name].help, util.see_also()) + :summary(cmd_modules[name].help_summary) + :handle_options(false) + :argument("input") + :args("*") + end + local original_command = cmd_modules[name].command + cmd_modules[name].command = function(args) + return original_command(args, unpack(args.input)) + end + end end local function process_cmdline_vars(...) -- cgit v1.2.3-55-g6feb