changeset 14064:76ece4dd9782

loader: Move all path setup here from all executables So it is done in the same way for all the executables, with less code duplication.
author Kim Alvefur <zash@zash.se>
date Mon, 09 Feb 2026 01:57:40 +0100
parents e73fdb09f080
children 50b8d732c905
files loader.lua prosody prosodyctl tools/migration/prosody-migrator.lua
diffstat 4 files changed, 14 insertions(+), 45 deletions(-) [+]
line wrap: on
line diff
--- a/loader.lua	Mon Feb 09 01:57:07 2026 +0100
+++ b/loader.lua	Mon Feb 09 01:57:40 2026 +0100
@@ -2,9 +2,21 @@
 -- transition period while we update all require calls.
 
 if (...) == "prosody.loader" then
+	local function is_relative(path)
+		local path_sep = package.config:sub(1,1);
+		return ((path_sep == "/" and path:sub(1,1) ~= "/")
+			or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\")))
+	end
+	local function filter_relative_paths(path)
+		if is_relative(path) then return ""; end
+	end
+	local function sanitise_paths(paths)
+		return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
+	end
+
 	-- For require"util.foo" also look in paths equivalent to "prosody.util.foo"
-	package.path = package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2");
-	package.cpath = package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2");
+	package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"));
+	package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath:gsub("([^;]*)(?[^;]*)", "%1prosody/%2;%1%2"));
 else
 	-- When requiring "prosody.x", also look for "x"
 	for i = #package.searchers, 1, -1 do
--- a/prosody	Mon Feb 09 01:57:07 2026 +0100
+++ b/prosody	Mon Feb 09 01:57:40 2026 +0100
@@ -28,20 +28,6 @@
 -- Tell Lua where to find our libraries
 if CFG_SOURCEDIR then
 	-- Installed instance
-	local function is_relative(path)
-		local path_sep = package.config:sub(1,1);
-		return ((path_sep == "/" and path:sub(1,1) ~= "/")
-			or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\")))
-	end
-	local function filter_relative_paths(path)
-		if is_relative(path) then return ""; end
-	end
-	local function sanitise_paths(paths)
-		return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
-	end
-	package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path);
-	package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath);
-
 	require "prosody.loader";
 else
 	-- Not installed, e.g. running from a source checkout
--- a/prosodyctl	Mon Feb 09 01:57:07 2026 +0100
+++ b/prosodyctl	Mon Feb 09 01:57:40 2026 +0100
@@ -24,24 +24,9 @@
 	return os.exit(1);
 end
 
-
 -- Tell Lua where to find our libraries
 if CFG_SOURCEDIR then
 	-- Installed instance
-	local function is_relative(path)
-		local path_sep = package.config:sub(1,1);
-		return ((path_sep == "/" and path:sub(1,1) ~= "/")
-			or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\")))
-	end
-	local function filter_relative_paths(path)
-		if is_relative(path) then return ""; end
-	end
-	local function sanitise_paths(paths)
-		return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
-	end
-	package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path);
-	package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath);
-
 	require "prosody.loader";
 else
 	-- Not installed, e.g. running from a source checkout
--- a/tools/migration/prosody-migrator.lua	Mon Feb 09 01:57:07 2026 +0100
+++ b/tools/migration/prosody-migrator.lua	Mon Feb 09 01:57:40 2026 +0100
@@ -17,20 +17,6 @@
 -- Tell Lua where to find our libraries
 if CFG_SOURCEDIR then
 	-- Installed instance
-	local function is_relative(path)
-		local path_sep = package.config:sub(1,1);
-		return ((path_sep == "/" and path:sub(1,1) ~= "/")
-			or (path_sep == "\\" and (path:sub(1,1) ~= "/" and path:sub(2,3) ~= ":\\")))
-	end
-	local function filter_relative_paths(path)
-		if is_relative(path) then return ""; end
-	end
-	local function sanitise_paths(paths)
-		return (paths:gsub("[^;]+;?", filter_relative_paths):gsub(";;+", ";"));
-	end
-	package.path = sanitise_paths(CFG_SOURCEDIR.."/?.lua;"..package.path);
-	package.cpath = sanitise_paths(CFG_SOURCEDIR.."/?.so;"..package.cpath);
-
 	require "prosody.loader";
 else
 	-- Not installed, e.g. running from a source checkout