- 配置文件解析引擎由 shim 替换为 mlua (Lua 5.4) - 优化路由策略:统一以根目录 shims.lua 为入口,支持 tools/ 目录模块化降级探测 - 自动注入 __SHIM_DIR__ 绝对路径与 package.path 模块搜索路径 - 环境变量改用 Command::envs 安全注入,并在 UAC 提权时透传
44 lines
1.6 KiB
Lua
44 lines
1.6 KiB
Lua
-- 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")
|
|
} |