aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFYP <its.fyp@gmail.com>2018-10-21 20:46:36 +0300
committerHisham Muhammad <hisham@gobolinux.org>2018-10-29 19:21:40 -0300
commit0c534c71465474b92710a2951bf15370fcc8c663 (patch)
tree4997ff7d01c747432e1a9b53518d533e3b12357b
parent8b60d7440ce6f215c7ea480950e4df5d190992f0 (diff)
downloadluarocks-0c534c71465474b92710a2951bf15370fcc8c663.tar.gz
luarocks-0c534c71465474b92710a2951bf15370fcc8c663.tar.bz2
luarocks-0c534c71465474b92710a2951bf15370fcc8c663.zip
cmd: fix setting up deployment paths from a tree
(Amended with a regression test.) Co-authored-by: Hisham Muhammad <hisham@gobolinux.org>
-rw-r--r--spec/config_spec.lua17
-rw-r--r--src/luarocks/cmd.lua10
2 files changed, 22 insertions, 5 deletions
diff --git a/spec/config_spec.lua b/spec/config_spec.lua
index f415909d..defc1d2f 100644
--- a/spec/config_spec.lua
+++ b/spec/config_spec.lua
@@ -3,6 +3,7 @@ local lfs = require("lfs")
3local run = test_env.run 3local run = test_env.run
4local testing_paths = test_env.testing_paths 4local testing_paths = test_env.testing_paths
5local env_variables = test_env.env_variables 5local env_variables = test_env.env_variables
6local write_file = test_env.write_file
6local hardcoded 7local hardcoded
7 8
8test_env.unload_luarocks() 9test_env.unload_luarocks()
@@ -52,6 +53,22 @@ describe("LuaRocks config tests #integration", function()
52 local output = run.luarocks("config --user-config", {LUAROCKS_CONFIG = "missing_file.lua"}) 53 local output = run.luarocks("config --user-config", {LUAROCKS_CONFIG = "missing_file.lua"})
53 assert.truthy(output:match("Warning")) 54 assert.truthy(output:match("Warning"))
54 end) 55 end)
56
57 it("LuaRocks config with --tree respects custom config", function()
58 write_file("my_config.lua", [[
59 rocks_trees = {
60 {
61 name = "system",
62 root = "/example/tree",
63 lua_dir = "/example/luadir",
64 },
65 }
66 ]], finally)
67 local output = run.luarocks("config", {LUAROCKS_CONFIG = "my_config.lua"})
68 assert.match([[deploy_lua_dir = "/example/luadir"]], output)
69 output = run.luarocks("config --tree=system", {LUAROCKS_CONFIG = "my_config.lua"})
70 assert.match([[deploy_lua_dir = "/example/luadir"]], output)
71 end)
55 end) 72 end)
56 73
57 describe("LuaRocks config - more complex tests", function() 74 describe("LuaRocks config - more complex tests", function()
diff --git a/src/luarocks/cmd.lua b/src/luarocks/cmd.lua
index fc98e45f..996900ff 100644
--- a/src/luarocks/cmd.lua
+++ b/src/luarocks/cmd.lua
@@ -150,10 +150,10 @@ end
150 150
151local process_tree_flags 151local process_tree_flags
152do 152do
153 local function replace_tree(flags, tree) 153 local function replace_tree(flags, root, tree)
154 tree = dir.normalize(tree) 154 root = dir.normalize(root)
155 flags["tree"] = tree 155 flags["tree"] = root
156 path.use_tree(tree) 156 path.use_tree(tree or root)
157 end 157 end
158 158
159 local function find_project_dir() 159 local function find_project_dir()
@@ -195,7 +195,7 @@ do
195 if not tree.root then 195 if not tree.root then
196 return nil, "Configuration error: tree '"..tree.name.."' has no 'root' field." 196 return nil, "Configuration error: tree '"..tree.name.."' has no 'root' field."
197 end 197 end
198 replace_tree(flags, tree.root) 198 replace_tree(flags, tree.root, tree)
199 named = true 199 named = true
200 break 200 break
201 end 201 end