Mercurial Hosting > luan
changeset 2159:967012bebfe0 nginx_sites_addon
add run_clean
| author | Franklin Schmidt <fschmidt@gmail.com> |
|---|---|
| date | Wed, 28 Jan 2026 17:42:16 -0700 |
| parents | b235600ea89b |
| children | 034b5f1b025c |
| files | src/luan/host/run.luan src/luan/modules/BasicLuan.java src/luan/modules/Luan.luan |
| diffstat | 3 files changed, 16 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
diff -r b235600ea89b -r 967012bebfe0 src/luan/host/run.luan --- a/src/luan/host/run.luan Tue Jan 27 21:50:37 2026 -0700 +++ b/src/luan/host/run.luan Wed Jan 28 17:42:16 2026 -0700 @@ -3,8 +3,8 @@ local error = Luan.error local ipairs = Luan.ipairs or error() local do_file = Luan.do_file or error() +local run_clean = Luan.run_clean 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" @@ -85,7 +85,10 @@ 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() + run_clean( function() + local Io = require "luan:Io.luan" + local Package = require "luan:Package.luan" + function Io.schemes.site(path,loading) local u = Io.uri( "file:nginx_sites/"..name..path, loading ) u.uri_string = "site:"..path
diff -r b235600ea89b -r 967012bebfe0 src/luan/modules/BasicLuan.java --- a/src/luan/modules/BasicLuan.java Tue Jan 27 21:50:37 2026 -0700 +++ b/src/luan/modules/BasicLuan.java Wed Jan 28 17:42:16 2026 -0700 @@ -278,7 +278,16 @@ public static void exit(Luan luan,int status) throws LuanException { Luan.checkSecurity(luan,"exit"); System.exit(status); - } + } + public static void run_clean(Luan luan,LuanFunction fn) throws LuanException { + Luan.Security security = luan.getSecurity(); + luan = new Luan(); + if( security != null ) + Luan.setSecurity(luan,security); + LuanMutable.makeImmutable(fn); + fn.call(luan); + } + private void BasicLuan() {} // never }
diff -r b235600ea89b -r 967012bebfe0 src/luan/modules/Luan.luan --- a/src/luan/modules/Luan.luan Tue Jan 27 21:50:37 2026 -0700 +++ b/src/luan/modules/Luan.luan Wed Jan 28 17:42:16 2026 -0700 @@ -23,6 +23,7 @@ Luan.raw_get = BasicLuan.raw_get Luan.raw_len = BasicLuan.raw_len Luan.raw_set = BasicLuan.raw_set +Luan.run_clean = BasicLuan.run_clean Luan.set_metatable = BasicLuan.set_metatable Luan.stringify = BasicLuan.stringify Luan.to_string = BasicLuan.to_string
