refactor(validators): 优化别名解析流程
- 新增 parse_tokens 按空格切分字符串 - 其他优化
This commit is contained in:
12
src/main.rs
12
src/main.rs
@@ -15,7 +15,7 @@ fn main() {
|
||||
set_console_ctrl_handler();
|
||||
// 3. 解析调用参数与代理 Shim 配置
|
||||
let calling_args: Vec<_> = env::args_os().skip(1).collect();
|
||||
let shim = match Mirror::load() {
|
||||
let mr = match Mirror::new() {
|
||||
Ok(v) => v,
|
||||
Err(e) => {
|
||||
eprintln!("加载代理(shim)配置时发生错误: {}", e);
|
||||
@@ -23,21 +23,21 @@ fn main() {
|
||||
}
|
||||
};
|
||||
// 构建 Command:复用 ShimConfig::to_command(含 args/env 注入),避免重复逻辑
|
||||
let mut cmd = shim.to_command(&calling_args);
|
||||
let mut cmd = mr.to_command(&calling_args);
|
||||
|
||||
let mut child = match cmd.spawn() {
|
||||
Ok(v) => v,
|
||||
Err(e) if e.raw_os_error() == Some(ERROR_ELEVATION_REQUIRED) => {
|
||||
// 提权回退时需要完整参数:配置默认参数 + 调用方透传参数
|
||||
let mut args = shim.args.clone();
|
||||
let mut args = mr.spec.args.clone();
|
||||
args.extend_from_slice(&calling_args);
|
||||
|
||||
exit(execute_elevated(&shim.target, &args, Some(&shim.env)))
|
||||
exit(execute_elevated(&mr.spec.target, &args, Some(&mr.spec.env)))
|
||||
}
|
||||
Err(e) => {
|
||||
eprintln!(
|
||||
"启动目标程序 [{}] 时发生错误: {}",
|
||||
shim.target.to_string_lossy(),
|
||||
mr.spec.target.to_string_lossy(),
|
||||
e
|
||||
);
|
||||
exit(EXIT_FAILED_SPAWN_PROG);
|
||||
@@ -49,7 +49,7 @@ fn main() {
|
||||
Err(e) => {
|
||||
eprintln!(
|
||||
"等待目标程序 [{}] 执行完毕时发生错误: {}",
|
||||
shim.target.to_string_lossy(),
|
||||
mr.spec.target.to_string_lossy(),
|
||||
e
|
||||
);
|
||||
exit(EXIT_FAILED_WAIT_PROG);
|
||||
|
||||
Reference in New Issue
Block a user