diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2019-08-30 11:02:58 -0300 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2019-09-03 15:00:01 -0300 |
commit | ccf92207e1092ae339b74454168acca79af72d0e (patch) | |
tree | 71ea1ea96e76274e14b523ac2b0f62306dd870f6 /src | |
parent | 0a5c5eee15072b712d0cee4cce8d642d1177ff76 (diff) | |
download | luarocks-ccf92207e1092ae339b74454168acca79af72d0e.tar.gz luarocks-ccf92207e1092ae339b74454168acca79af72d0e.tar.bz2 luarocks-ccf92207e1092ae339b74454168acca79af72d0e.zip |
cmd: add compatibility mode for pre-argparse external commands
See #1070.
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/cmd.lua | 15 |
1 files changed, 15 insertions, 0 deletions
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") | |||
11 | local fs = require("luarocks.fs") | 11 | local fs = require("luarocks.fs") |
12 | local argparse = require("luarocks.argparse") | 12 | local argparse = require("luarocks.argparse") |
13 | 13 | ||
14 | local unpack = unpack or table.unpack | ||
15 | |||
14 | local hc_ok, hardcoded = pcall(require, "luarocks.core.hardcoded") | 16 | local hc_ok, hardcoded = pcall(require, "luarocks.core.hardcoded") |
15 | if not hc_ok then | 17 | if not hc_ok then |
16 | hardcoded = {} | 18 | hardcoded = {} |
@@ -459,6 +461,19 @@ function cmd.run_command(description, commands, external_namespace, ...) | |||
459 | local cmd_modules = {} | 461 | local cmd_modules = {} |
460 | for name, module in pairs(commands) do | 462 | for name, module in pairs(commands) do |
461 | cmd_modules[name] = require(module) | 463 | cmd_modules[name] = require(module) |
464 | if not cmd_modules[name].add_to_parser then | ||
465 | cmd_modules[name].add_to_parser = function(parser) | ||
466 | parser:command(name, cmd_modules[name].help, util.see_also()) | ||
467 | :summary(cmd_modules[name].help_summary) | ||
468 | :handle_options(false) | ||
469 | :argument("input") | ||
470 | :args("*") | ||
471 | end | ||
472 | local original_command = cmd_modules[name].command | ||
473 | cmd_modules[name].command = function(args) | ||
474 | return original_command(args, unpack(args.input)) | ||
475 | end | ||
476 | end | ||
462 | end | 477 | end |
463 | 478 | ||
464 | local function process_cmdline_vars(...) | 479 | local function process_cmdline_vars(...) |