use std::path::PathBuf; use std::process::{Command, Stdio}; use std::env; fn run_command(cmd: &str, env_vars: Vec<(&str, String)>, args: Vec<&str>) { let mut command = Command::new(cmd); for (key, value) in env_vars { command.env(key, value); } command .stdout(Stdio::null()) .stderr(Stdio::null()) .stdin(Stdio::null()) .args(args) .spawn() .expect("Failed to run command"); } fn main() { let tmp = env::temp_dir(); let home = env::home_dir().expect("Failed to get home directory"); let cwd = env::current_dir().expect("Failed to get current directory"); let tmp_path = tmp.display().to_string(); let install_path = format!("{}/scripts/install.sh", cwd.display()); let exec_path = format!("{}/scripts/for-rust.sh", cwd.display()); let ec_path = format!("{}/ec", &tmp_path); let ec_proxy_path = format!("{}/ec-proxy", &tmp_path); let cargo_path = format!("{}/.cargo/bin", home.display()); run_command(&install_path, vec![("EC_DEST", tmp_path), ("EC_VERSION", "0.9.0".to_string())], vec![]); run_command(&exec_path, vec![], vec![&cargo_path, &ec_path, &ec_proxy_path]); }