From 99b1ba350d3c933322db541f86ee7a5f70995e30 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 8 Feb 2022 16:26:03 -0300 Subject: Fix crash when --lua-version is malformed --- spec/cmd_spec.lua | 5 +++++ src/luarocks/cmd.lua | 1 + 2 files changed, 6 insertions(+) diff --git a/spec/cmd_spec.lua b/spec/cmd_spec.lua index d28acdf6..fe27ab1b 100644 --- a/spec/cmd_spec.lua +++ b/spec/cmd_spec.lua @@ -53,6 +53,11 @@ describe("LuaRocks command line #integration", function() end) describe("--lua-version", function() + it("fails if given something that is not a number", function() + local output = run.luarocks("--lua-version=bozo") + assert.match("malformed", output, 1, true) + end) + it("warns but continues if given an invalid version", function() local output = run.luarocks("--lua-version=1.0") assert.match("Warning: Lua 1.0 interpreter not found", output, 1, true) diff --git a/src/luarocks/cmd.lua b/src/luarocks/cmd.lua index 233bb1bd..962d9256 100644 --- a/src/luarocks/cmd.lua +++ b/src/luarocks/cmd.lua @@ -463,6 +463,7 @@ Enabling completion for Fish: :argname("") parser:option("--lua-version", "Which Lua version to use.") :argname("") + :convert(function(s) return (s:match("^%d+%.%d+$")) end) parser:option("--tree", "Which tree to operate on.") :hidden_name("--to") parser:flag("--local", "Use the tree in the user's home directory.\n".. -- cgit v1.2.3-55-g6feb