From 28e47063bd1ae48a704ce00d3b9b3b7ebe8b0025 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sat, 6 Aug 2022 13:03:55 +0800 Subject: [PATCH] feat: v0.1.6 write *.src file --- Cargo.lock | 2 +- Cargo.toml | 2 +- src/main.rs | 21 +++++++++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 63c44fa..7d3df78 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -128,7 +128,7 @@ dependencies = [ [[package]] name = "runrs" -version = "0.1.5" +version = "0.1.6" dependencies = [ "rust_util", "sha256", diff --git a/Cargo.toml b/Cargo.toml index 1f8b6f0..acb1878 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "runrs" -version = "0.1.5" +version = "0.1.6" edition = "2018" license = "MIT/Apache-2.0" description = "Run Rust Scripts" diff --git a/src/main.rs b/src/main.rs index 8d16c87..67e771e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -60,16 +60,8 @@ runrs [arguments] let cache_script_bin_name_exists = fs::metadata(&cache_script_bin_name).is_ok(); debugging!("Bin name: {} {}exists", cache_script_bin_name, iff!(cache_script_bin_name_exists, "", "not ")); let mut run_script_cmd = if cache_script_bin_name_exists { - Command::new(cache_script_bin_name) + Command::new(&cache_script_bin_name) } else { - if let Ok(Some(canonicalized_script_file)) = PathBuf::from(script_file) - .canonicalize().map(|f| f.to_str().map(|f| f.to_string())) { - let cache_script_bin_name_src = format!("{}.src", cache_script_bin_name); - if let Ok(_) = fs::write(&cache_script_bin_name_src, &format!("{}\n", canonicalized_script_file)) { - debugging!("Write {} to {}", canonicalized_script_file, cache_script_bin_name_src); - } - } - let mut cmd = Command::new(rust_script); if util_msg::is_logger_level_enabled(MessageType::DEBUG) { cmd.arg("--cargo-output"); @@ -83,6 +75,15 @@ runrs [arguments] debugging!("Run command: {:?}", run_script_cmd); match rust_util::util_cmd::run_command_and_wait(&mut run_script_cmd) { Err(e) => failure_and_exit!("Run rust-script failed: {}", e), - Ok(exit_status) => std::process::exit(exit_status.code().unwrap_or_else(|| 0)), + Ok(exit_status) => { + if let Ok(Some(canonicalized_script_file)) = PathBuf::from(script_file) + .canonicalize().map(|f| f.to_str().map(|f| f.to_string())) { + let cache_script_bin_name_src = format!("{}.src", cache_script_bin_name); + if let Ok(_) = fs::write(&cache_script_bin_name_src, &format!("{}\n", canonicalized_script_file)) { + debugging!("Write {} to {}", canonicalized_script_file, cache_script_bin_name_src); + } + } + std::process::exit(exit_status.code().unwrap_or_else(|| 0)) + } } }