aboutsummaryrefslogtreecommitdiffstats
path: root/util/paths.lua
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2020-11-05 22:31:25 +0100
committerKim Alvefur <zash@zash.se>2020-11-05 22:31:25 +0100
commit238b2bfc1cdb65ae7d051c2f29c1427149317795 (patch)
tree58547de6e7795740633c1b93e67c217eb621fe8f /util/paths.lua
parentce3e3808f5359f481f3ea063220ba71428b26ad5 (diff)
parent48521ba1538f797f5bef64f5fe5f3a9fb6e68f7f (diff)
downloadprosody-238b2bfc1cdb65ae7d051c2f29c1427149317795.tar.gz
prosody-238b2bfc1cdb65ae7d051c2f29c1427149317795.zip
Merge 0.11->trunk
Diffstat (limited to 'util/paths.lua')
-rw-r--r--util/paths.lua30
1 files changed, 28 insertions, 2 deletions
diff --git a/util/paths.lua b/util/paths.lua
index 89f4cad9..b75c35e5 100644
--- a/util/paths.lua
+++ b/util/paths.lua
@@ -37,8 +37,34 @@ function path_util.glob_to_pattern(glob)
end).."$";
end
-function path_util.join(...)
- return t_concat({...}, path_sep);
+function path_util.join(a, b, c, ...) -- (... : string) --> string
+ -- Optimization: Avoid creating table for most uses
+ if b then
+ if c then
+ if ... then
+ return t_concat({a,b,c,...}, path_sep);
+ end
+ return a..path_sep..b..path_sep..c;
+ end
+ return a..path_sep..b;
+ end
+ return a;
+end
+
+function path_util.complement_lua_path(installer_plugin_path)
+ -- Checking for duplicates
+ -- The commands using luarocks need the path to the directory that has the /share and /lib folders.
+ local lua_version = _VERSION:match(" (.+)$");
+ local lua_path_sep = package.config:sub(3,3);
+ local dir_sep = package.config:sub(1,1);
+ local sub_path = dir_sep.."lua"..dir_sep..lua_version..dir_sep;
+ if not string.find(package.path, installer_plugin_path, 1, true) then
+ package.path = package.path..lua_path_sep..installer_plugin_path..dir_sep.."share"..sub_path.."?.lua";
+ package.path = package.path..lua_path_sep..installer_plugin_path..dir_sep.."share"..sub_path.."?"..dir_sep.."init.lua";
+ end
+ if not string.find(package.path, installer_plugin_path, 1, true) then
+ package.cpath = package.cpath..lua_path_sep..installer_plugin_path..dir_sep.."lib"..sub_path.."?.so";
+ end
end
return path_util;