package/luarocks: refactor Buildroot addon with new argparse module
authorFrancois Perrad <fperrad@gmail.com>
Tue, 10 Sep 2019 03:30:09 +0000 (05:30 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 15 Sep 2019 13:54:45 +0000 (15:54 +0200)
The wellknown module `argparse` is now used by LuaRocks 3.2.0, instead
of a homemade argument parsing.

Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
package/luarocks/buildroot.lua

index 35223c11925130d9e880a9c812655e0d73b022d5..e829b6db0080b23a83c468aa04f0cb177713b060 100644 (file)
@@ -10,15 +10,20 @@ local search = require("luarocks.search")
 local download = require("luarocks.download")
 local fetch = require("luarocks.fetch")
 
-buildroot.help_summary = "generate buildroot package files of a rock."
-buildroot.help_arguments = "rockname [brname]"
-buildroot.help = [[
+function buildroot.add_to_parser(parser)
+   local cmd = parser:command("buildroot", [[
 This addon generates Buildroot package files of a rock.
 First argument is the name of a rock, the second argument is optional
 and needed when Buildroot uses another name (usually prefixed by lua-).
 Files are generated with the source content of the rock and more
 especially the rockspec. So, the rock is downloaded and unpacked.
-]]
+]], util.see_also())
+      :summary("generate buildroot package files of a rock.")
+
+   cmd:argument("rockname", "the name of a rock to be fetched and unpacked.")
+   cmd:argument("brname", "the name used by Buildroot.")
+      :args("?")
+end
 
 local function brname (name)
    return name:upper():gsub('-', '_')
@@ -309,15 +314,10 @@ local function generate_test (rockspec, lcname)
 end
 
 --- Driver function for the "buildroot" command.
--- @param rockname string: the name of a rock to be fetched and unpacked.
--- @param brname string: the name used by Buildroot (optional)
 -- @return boolean: true if successful
-function buildroot.command(flags, rockname, fsname)
-   if type(rockname) ~= 'string' then
-      return nil, "Argument missing. "..util.see_help('buildroot')
-   end
-   fsname = fsname or rockname
-   assert(type(fsname) == 'string')
+function buildroot.command(args)
+   local rockname = assert(args.rockname)
+   local fsname = args.brname or rockname
 
    local query = queries.new(rockname:lower(), nil, false, 'src')
    local url, err = search.find_suitable_rock(query)