aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2025-02-21 12:29:18 -0300
committerHisham Muhammad <hisham@gobolinux.org>2025-02-21 13:17:20 -0300
commit91dc933e27562c980723d0f6fba3406ef703f187 (patch)
tree24ba5982106927ad0f890874237a0a5230466512
parent33ff7412d3ddb107a5f81a4c501fcb61ca0e083c (diff)
downloadluarocks-91dc933e27562c980723d0f6fba3406ef703f187.tar.gz
luarocks-91dc933e27562c980723d0f6fba3406ef703f187.tar.bz2
luarocks-91dc933e27562c980723d0f6fba3406ef703f187.zip
core.path: more thorough error checking
-rw-r--r--src/luarocks/core/path.lua11
-rw-r--r--src/luarocks/core/path.tl11
2 files changed, 20 insertions, 2 deletions
diff --git a/src/luarocks/core/path.lua b/src/luarocks/core/path.lua
index 2d267e30..2bfe84e0 100644
--- a/src/luarocks/core/path.lua
+++ b/src/luarocks/core/path.lua
@@ -13,11 +13,20 @@ local dir_sep = package.config:sub(1, 1)
13function path.rocks_dir(tree) 13function path.rocks_dir(tree)
14 if tree == nil then 14 if tree == nil then
15 tree = cfg.root_dir 15 tree = cfg.root_dir
16 if tree == nil then
17 error("root_dir could not be determined in configuration")
18 end
16 end 19 end
17 if type(tree) == "string" then 20 if type(tree) == "string" then
18 return dir.path(tree, cfg.rocks_subdir) 21 return dir.path(tree, cfg.rocks_subdir)
19 end 22 end
20 return tree.rocks_dir or dir.path(tree.root, cfg.rocks_subdir) 23 if tree.rocks_dir then
24 return tree.rocks_dir
25 end
26 if tree.root and cfg.rocks_subdir then
27 return dir.path(tree.root, cfg.rocks_subdir)
28 end
29 error("invalid configuration for local repository")
21end 30end
22 31
23 32
diff --git a/src/luarocks/core/path.tl b/src/luarocks/core/path.tl
index 680c3296..cb5d14dc 100644
--- a/src/luarocks/core/path.tl
+++ b/src/luarocks/core/path.tl
@@ -13,11 +13,20 @@ local dir_sep = package.config:sub(1, 1)
13function path.rocks_dir(tree: string | Tree): string 13function path.rocks_dir(tree: string | Tree): string
14 if tree == nil then 14 if tree == nil then
15 tree = cfg.root_dir 15 tree = cfg.root_dir
16 if tree == nil then
17 error("root_dir could not be determined in configuration")
18 end
16 end 19 end
17 if tree is string then 20 if tree is string then
18 return dir.path(tree, cfg.rocks_subdir) 21 return dir.path(tree, cfg.rocks_subdir)
19 end 22 end
20 return tree.rocks_dir or dir.path(tree.root, cfg.rocks_subdir) 23 if tree.rocks_dir then
24 return tree.rocks_dir
25 end
26 if tree.root and cfg.rocks_subdir then
27 return dir.path(tree.root, cfg.rocks_subdir)
28 end
29 error("invalid configuration for local repository")
21end 30end
22 31
23--- Produce a versioned version of a filename. 32--- Produce a versioned version of a filename.