From 97339f0e9542b96137f72c10333c86723d2b0a2d Mon Sep 17 00:00:00 2001 From: V1K1NGbg Date: Thu, 22 Aug 2024 17:49:03 -0300 Subject: Teal: convert luarocks.cmd.lint --- src/luarocks/cmd/lint.lua | 50 --------------------------------------- src/luarocks/cmd/lint.tl | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 50 deletions(-) delete mode 100644 src/luarocks/cmd/lint.lua create mode 100644 src/luarocks/cmd/lint.tl diff --git a/src/luarocks/cmd/lint.lua b/src/luarocks/cmd/lint.lua deleted file mode 100644 index 738503ce..00000000 --- a/src/luarocks/cmd/lint.lua +++ /dev/null @@ -1,50 +0,0 @@ - ---- Module implementing the LuaRocks "lint" command. --- Utility function that checks syntax of the rockspec. -local lint = {} - -local util = require("luarocks.util") -local download = require("luarocks.download") -local fetch = require("luarocks.fetch") - -function lint.add_to_parser(parser) - local cmd = parser:command("lint", "Check syntax of a rockspec.\n\n".. - "Returns success if the text of the rockspec is syntactically correct, else failure.", - util.see_also()) - :summary("Check syntax of a rockspec.") - - cmd:argument("rockspec", "The rockspec to check.") -end - -function lint.command(args) - - local filename = args.rockspec - if not filename:match(".rockspec$") then - local err - filename, err = download.download("rockspec", filename:lower()) - if not filename then - return nil, err - end - end - - local rs, err = fetch.load_local_rockspec(filename) - if not rs then - return nil, "Failed loading rockspec: "..err - end - - local ok = true - - -- This should have been done in the type checker, - -- but it would break compatibility of other commands. - -- Making 'lint' alone be stricter shouldn't be a problem, - -- because extra-strict checks is what lint-type commands - -- are all about. - if not rs.description or not rs.description.license then - util.printerr("Rockspec has no description.license field.") - ok = false - end - - return ok, ok or filename.." failed consistency checks." -end - -return lint diff --git a/src/luarocks/cmd/lint.tl b/src/luarocks/cmd/lint.tl new file mode 100644 index 00000000..116dba12 --- /dev/null +++ b/src/luarocks/cmd/lint.tl @@ -0,0 +1,59 @@ + +--- Module implementing the LuaRocks "lint" command. +-- Utility function that checks syntax of the rockspec. +local record lint +end + +local util = require("luarocks.util") +local download = require("luarocks.download") +local fetch = require("luarocks.fetch") + +local type Parser = require("luarocks.vendor.argparse").Parser + +local type Args = require("luarocks.core.types.args").Args + +function lint.add_to_parser(parser: Parser) + local cmd = parser:command("lint", "Check syntax of a rockspec.\n\n".. + "Returns success if the text of the rockspec is syntactically correct, else failure.", + util.see_also()) + :summary("Check syntax of a rockspec.") + + cmd:argument("rockspec", "The rockspec to check.") +end + +function lint.command(args: Args): boolean, string, string + + local filename = args.rockspec + if not filename:match(".rockspec$") then + local err: string + filename, err = download.download_file("rockspec", filename:lower()) + if not filename then + return nil, err + end + end + + local rs, err = fetch.load_local_rockspec(filename) + if not rs then + return nil, "Failed loading rockspec: "..err + end + + local ok = true + + -- This should have been done in the type checker, + -- but it would break compatibility of other commands. + -- Making 'lint' alone be stricter shouldn't be a problem, + -- because extra-strict checks is what lint-type commands + -- are all about. + if not rs.description or not rs.description.license then + util.printerr("Rockspec has no description.license field.") + ok = false + end + + if ok then + return ok + end + + return nil, filename.." failed consistency checks." +end + +return lint -- cgit v1.2.3-55-g6feb