pub mod runtime;
pub mod log_rate_limit;
use crate::config::Dandelion;
use mlua::Lua;
use crate::security::env_modify::Modules_no_suffix;
pub fn restrict_module_load_path(pkg: &Dandelion, lua: &Lua) -> Result<(), mlua::Error> {
let dll_lib_path = &pkg.cext;
let lua_lib_path = &pkg.lext;
let exec_lib_path = &pkg.exe;
lua.globals().set("package.cpath", format!("{}/?.dll;{}/?.so;{}/?.wing", dll_lib_path, dll_lib_path, exec_lib_path))?;
lua.globals().set("package.path", format!("{};{}", format!("{}/?.wing", &lua_lib_path), format!("{}/?.mint", &lua_lib_path)))?;
Ok(())
}
pub fn generate_lua_script_for_lib_loading(modulelist: Modules_no_suffix) -> String {
let mut script = String::new();
for api in modulelist {
script.push_str(&format!("require(\"{}\")", api));
}
script
}