aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2022-02-08 16:26:03 -0300
committerHisham Muhammad <hisham@gobolinux.org>2022-02-08 16:26:03 -0300
commit99b1ba350d3c933322db541f86ee7a5f70995e30 (patch)
tree2926e1a71ee7522215f7e876dd8495035fc8b31e
parentf226ebefb536a8fea5e93863cff0afcdad005ce9 (diff)
downloadluarocks-99b1ba350d3c933322db541f86ee7a5f70995e30.tar.gz
luarocks-99b1ba350d3c933322db541f86ee7a5f70995e30.tar.bz2
luarocks-99b1ba350d3c933322db541f86ee7a5f70995e30.zip
Fix crash when --lua-version is malformed
-rw-r--r--spec/cmd_spec.lua5
-rw-r--r--src/luarocks/cmd.lua1
2 files changed, 6 insertions, 0 deletions
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()
53 end) 53 end)
54 54
55 describe("--lua-version", function() 55 describe("--lua-version", function()
56 it("fails if given something that is not a number", function()
57 local output = run.luarocks("--lua-version=bozo")
58 assert.match("malformed", output, 1, true)
59 end)
60
56 it("warns but continues if given an invalid version", function() 61 it("warns but continues if given an invalid version", function()
57 local output = run.luarocks("--lua-version=1.0") 62 local output = run.luarocks("--lua-version=1.0")
58 assert.match("Warning: Lua 1.0 interpreter not found", output, 1, true) 63 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:
463 :argname("<prefix>") 463 :argname("<prefix>")
464 parser:option("--lua-version", "Which Lua version to use.") 464 parser:option("--lua-version", "Which Lua version to use.")
465 :argname("<ver>") 465 :argname("<ver>")
466 :convert(function(s) return (s:match("^%d+%.%d+$")) end)
466 parser:option("--tree", "Which tree to operate on.") 467 parser:option("--tree", "Which tree to operate on.")
467 :hidden_name("--to") 468 :hidden_name("--to")
468 parser:flag("--local", "Use the tree in the user's home directory.\n".. 469 parser:flag("--local", "Use the tree in the user's home directory.\n"..