changeset 2153:867e88728368 nginx_sites_addon

call nginx_sites/*/init.luan
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 27 Jan 2026 18:49:42 -0700
parents 13f2ef0fe1de
children 03d4c892b436
files src/luan/host/run.luan
diffstat 1 files changed, 26 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/luan/host/run.luan	Tue Jan 27 17:14:33 2026 -0700
+++ b/src/luan/host/run.luan	Tue Jan 27 18:49:42 2026 -0700
@@ -3,6 +3,8 @@
 local error = Luan.error
 local ipairs = Luan.ipairs or error()
 local do_file = Luan.do_file or error()
+local Package = require "luan:Package.luan"
+local Thread = require "luan:Thread.luan"
 local Number = require "luan:Number.luan"
 local long = Number.long or error()
 local Io = require "luan:Io.luan"
@@ -10,6 +12,7 @@
 local WebHandler = require "java:luan.host.WebHandler"
 local Logging = require "luan:logging/Logging.luan"
 
+
 local log_to_console = false
 for _, arg in ipairs{...} do
 	if arg == "console" then
@@ -67,9 +70,28 @@
 local server = Server.ForAddress.new("127.0.0.1",8080,handler)
 server.start()
 
+do
+	local sites_dir = Io.schemes.file(Hosted.sites_dir)
+	for _, site_dir in ipairs(sites_dir.children()) do
+		local name = site_dir.name()
+		WebHandler.loadHandler(name)
+	end
+end
 
-local sites_dir = Io.schemes.file(Hosted.sites_dir)
-for _, site_dir in ipairs(sites_dir.children()) do
-	local name = site_dir.name()
-	WebHandler.loadHandler(name)
+
+-- ngnx servers
+
+do
+	local sites_dir = Io.schemes.file("nginx_sites")
+	for _, site_dir in ipairs(sites_dir.children() or {}) do
+		local name = site_dir.name()
+		Thread.run( function()
+			function Io.schemes.site(path,loading)
+				local u =  Io.uri( "file:nginx_sites/"..name..path, loading )
+				u.uri_string = "site:"..path
+				return u
+			end
+			Package.load("file:nginx_sites/"..name.."/init.luan")
+		end )
+	end
 end