]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Update bundled lua-argparse to 0.7.1
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 1 Dec 2021 09:40:56 +0000 (09:40 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 1 Dec 2021 09:40:56 +0000 (09:40 +0000)
contrib/DEPENDENCY_INFO.md
contrib/lua-argparse/argparse.lua

index c4385bdef99847cc90f1f42cf1e087c550f7ecd8..7bfc0361d71fa9772fd9dd1de5b83596e67ae478 100644 (file)
@@ -11,7 +11,7 @@
 | librdns       | ?       | BSD-2-Clause        | YES     |                    |
 | libucl        | ?       | BSD-2-Clause        | YES     |                    |
 | replxx        |  6d93360 | BSD-2-Clause       | YES     | libicu usage       |
-| lua-argparse  | 0.7.0   | MIT                 | NO      |                    |
+| lua-argparse  | 0.7.1   | MIT                 | NO      |                    |
 | lua-bit       | 1.0.2   | MIT                 | YES     | build fixes        |
 | lua-fun       | ?       | MIT                 | YES     | rspamd text        |
 | lua-lpeg      | 1.0     | MIT                 | YES     | rspamd text + alloc|
index dc6cdb0de008fdfc69e476e02f8e8de5d140a70f..6b529624716233778431cab6447fd00f67a735e6 100644 (file)
@@ -130,12 +130,30 @@ local multiname = {"name", function(self, value)
    for alias in value:gmatch("%S+") do
       self._name = self._name or alias
       table.insert(self._aliases, alias)
+      table.insert(self._public_aliases, alias)
+      -- If alias contains '_', accept '-' also.
+      if alias:find("_", 1, true) then
+         table.insert(self._aliases, (alias:gsub("_", "-")))
+      end
    end
 
    -- Do not set _name as with other properties.
    return true
 end}
 
+local multiname_hidden = {"hidden_name", function(self, value)
+   typecheck("hidden_name", {"string"}, value)
+
+   for alias in value:gmatch("%S+") do
+      table.insert(self._aliases, alias)
+      if alias:find("_", 1, true) then
+         table.insert(self._aliases, (alias:gsub("_", "-")))
+      end
+   end
+
+   return true
+end}
+
 local function parse_boundaries(str)
    if tonumber(str) then
       return tonumber(str), tonumber(str)
@@ -257,12 +275,14 @@ local Parser = class({
 })
 
 local Command = class({
-   _aliases = {}
+   _aliases = {},
+   _public_aliases = {}
 }, {
    args = 3,
    multiname,
    typechecked("description", "string"),
    typechecked("epilog", "string"),
+   multiname_hidden,
    typechecked("summary", "string"),
    typechecked("target", "string"),
    typechecked("usage", "string"),
@@ -307,6 +327,7 @@ local Argument = class({
 
 local Option = class({
    _aliases = {},
+   _public_aliases = {},
    _mincount = 0,
    _overwrite = true
 }, {
@@ -317,6 +338,7 @@ local Option = class({
    typechecked("convert", "function", "table"),
    boundaries("args"),
    boundaries("count"),
+   multiname_hidden,
    typechecked("target", "string"),
    typechecked("defmode", "string"),
    typechecked("show_default", "boolean"),
@@ -505,22 +527,22 @@ function Option:_get_label_lines()
 
    if #argument_list == 0 then
       -- Don't put aliases for simple flags like `-h` on different lines.
-      return {table.concat(self._aliases, ", ")}
+      return {table.concat(self._public_aliases, ", ")}
    end
 
    local longest_alias_length = -1
 
-   for _, alias in ipairs(self._aliases) do
+   for _, alias in ipairs(self._public_aliases) do
       longest_alias_length = math.max(longest_alias_length, #alias)
    end
 
    local argument_list_repr = table.concat(argument_list, " ")
    local lines = {}
 
-   for i, alias in ipairs(self._aliases) do
+   for i, alias in ipairs(self._public_aliases) do
       local line = (" "):rep(longest_alias_length - #alias) .. alias .. " " .. argument_list_repr
 
-      if i ~= #self._aliases then
+      if i ~= #self._public_aliases then
          line = line .. ","
       end
 
@@ -531,7 +553,7 @@ function Option:_get_label_lines()
 end
 
 function Command:_get_label_lines()
-   return {table.concat(self._aliases, ", ")}
+   return {table.concat(self._public_aliases, ", ")}
 end
 
 function Argument:_get_description()
@@ -569,7 +591,7 @@ end
 function Option:_get_default_target()
    local res
 
-   for _, alias in ipairs(self._aliases) do
+   for _, alias in ipairs(self._public_aliases) do
       if alias:sub(1, 1) == alias:sub(2, 2) then
          res = alias:sub(3)
          break
@@ -2069,7 +2091,7 @@ end
 
 local argparse = {}
 
-argparse.version = "0.7.0"
+argparse.version = "0.7.1"
 
 setmetatable(argparse, {__call = function(_, ...)
    return Parser(default_cmdline[0]):add_help(true)(...)