refactor: 配置文件引擎迁移至 mlua 并优化环境变量注入
- 配置文件解析引擎由 shim 替换为 mlua (Lua 5.4) - 优化路由策略:统一以根目录 shims.lua 为入口,支持 tools/ 目录模块化降级探测 - 自动注入 __SHIM_DIR__ 绝对路径与 package.path 模块搜索路径 - 环境变量改用 Command::envs 安全注入,并在 UAC 提权时透传
This commit is contained in:
44
shims.lua
Normal file
44
shims.lua
Normal file
@@ -0,0 +1,44 @@
|
||||
-- shims.lua (总控制台)
|
||||
-- __SHIM_DIR__ 已经在 Rust 中注入完毕,并且是正斜杠格式 (例如 C:/Tools)
|
||||
local base_dir = __SHIM_DIR__
|
||||
|
||||
return {
|
||||
---------------------------------------------------
|
||||
-- 1. 标准相对路径 + 正斜杠拼接 (最推荐,绿色便携)
|
||||
---------------------------------------------------
|
||||
["git"] = {
|
||||
path = base_dir .. "/git/bin/git.exe",
|
||||
-- 追加参数
|
||||
args = {"--no-pager"},
|
||||
-- 注入环境变量,使用 get_env 获取宿主机当前值
|
||||
env = {
|
||||
PATH = base_dir .. "/git/bin;" .. get_env("PATH")
|
||||
}
|
||||
},
|
||||
|
||||
---------------------------------------------------
|
||||
-- 2. Lua 原生字符串语法 [[ ]] (适合直接从 Windows 复制绝对路径)
|
||||
---------------------------------------------------
|
||||
["python"] = {
|
||||
-- 在 [[]] 内部,\ 不需要写成 \\,直接粘贴即可
|
||||
path = [[C:\Python310\python.exe]],
|
||||
args = {"-B"},
|
||||
-- 空字典也是合法的,等同于不设置
|
||||
env = {}
|
||||
},
|
||||
|
||||
---------------------------------------------------
|
||||
-- 3. 极简参数覆盖 (没有 args 和 env)
|
||||
---------------------------------------------------
|
||||
["curl"] = {
|
||||
path = base_dir .. "/curl/curl.exe"
|
||||
},
|
||||
|
||||
---------------------------------------------------
|
||||
-- 4. 模块化路由 (得益于 Rust 注入的 package.path)
|
||||
-- require 能够直接在当前目录 或 conf.d/ 目录下寻找 node.lua
|
||||
---------------------------------------------------
|
||||
["node"] = require("node"),
|
||||
|
||||
["npm"] = require("npm")
|
||||
}
|
||||
Reference in New Issue
Block a user