From 6f510acd7efb931218b1e90f400a64b76c55c5f6 Mon Sep 17 00:00:00 2001 From: "Hatter Jiang@Pixelbook" Date: Sat, 10 Aug 2019 14:34:07 +0800 Subject: [PATCH] suport aCmd --- src/main.rs | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index f7f1e87..bba5963 100644 --- a/src/main.rs +++ b/src/main.rs @@ -249,8 +249,33 @@ fn main() { let mut cmd = Command::new(cmd_bin); cmd.envs(&new_env); - for i in 1..args.len() { - cmd.arg(&args[i]); + if args.len() > 1 { + let arg1 = &args[1]; + if arg1.starts_with("::") { + let a_cmd = &arg1[2..]; + let a_cmd_j = &build_json_object["xArgs"][a_cmd]; + if a_cmd_j.is_null() { + print_message(MessageType::WARN, &format!("xArgs argument not found: {}", a_cmd)); + if args.len() == 2 { + print_message(MessageType::ERROR, "Only on xArgs argument, exit."); + return; + } + cmd.arg(arg1); + } else { + for a_j in a_cmd_j.members() { + if ! a_j.is_null() { + cmd.arg(a_j.as_str().unwrap()); + } + } + } + } else { + cmd.arg(arg1); + } + } + if args.len() > 2 { + for i in 2..args.len() { + cmd.arg(&args[i]); + } } if *VERBOSE { print_message(MessageType::DEBUG, "-----Environment variables-----");