Comparison

prosodyctl @ 3999:58c0de7c6da0

prosody, prosodyctl: Filter out relative paths from package.(c)path when installed
author Matthew Wild <mwild1@gmail.com>
date Tue, 04 Jan 2011 21:19:28 +0000
parent 3998:009d1ad84b49
child 4095:6ad7ed619d37
comparison
equal deleted inserted replaced
3998:009d1ad84b49 3999:58c0de7c6da0
16 CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR"); 16 CFG_PLUGINDIR=os.getenv("PROSODY_PLUGINDIR");
17 CFG_DATADIR=os.getenv("PROSODY_DATADIR"); 17 CFG_DATADIR=os.getenv("PROSODY_DATADIR");
18 18
19 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 19 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20 20
21 local function is_relative(path)
22 local path_sep = package.config:sub(1,1);
23 return ((path_sep == "/" and path:sub(1,1) ~= "/")
24 or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\")))
25 end
26
21 -- Tell Lua where to find our libraries 27 -- Tell Lua where to find our libraries
22 if CFG_SOURCEDIR then 28 if CFG_SOURCEDIR then
23 package.path = CFG_SOURCEDIR.."/?.lua;"..package.path; 29 local function filter_relative_paths(path)
24 package.cpath = CFG_SOURCEDIR.."/?.so;"..package.cpath; 30 if is_relative(path) then return ""; end
31 end
32 local function sanitise_paths(paths)
33 return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
34 end
35 package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path);
36 package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath);
25 end 37 end
26 38
27 -- Substitute ~ with path to home directory in data path 39 -- Substitute ~ with path to home directory in data path
28 if CFG_DATADIR then 40 if CFG_DATADIR then
29 if os.getenv("HOME") then 41 if os.getenv("HOME") then