diff --git a/Cargo.lock b/Cargo.lock index 56c56ea..40da15d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1221,7 +1221,7 @@ dependencies = [ [[package]] name = "runrs" -version = "1.1.9" +version = "1.1.10" dependencies = [ "argh", "reqwest", diff --git a/Cargo.toml b/Cargo.toml index aa185d2..8063454 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "runrs" -version = "1.1.9" +version = "1.1.10" edition = "2018" license = "MIT/Apache-2.0" description = "A Tool for Run Rust/TypeScript Scripts" diff --git a/src/run_ts.rs b/src/run_ts.rs index 8247e85..001854b 100644 --- a/src/run_ts.rs +++ b/src/run_ts.rs @@ -2,8 +2,8 @@ use crate::resolver::resolve_file; use crate::{verify, RunScriptArgs}; use rust_util::util_cmd; use rust_util::util_env::is_env_on; -use std::fs; use std::process::Command; +use std::{fs, process}; const RUNTIME_DENO: &str = "--runtime-deno"; const RUNTIME_BUN: &str = "--runtime-bun"; @@ -29,7 +29,10 @@ pub fn do_run_script(args: &RunScriptArgs) { let script_file = resolve_file(raw_script_file, args.force_update) .unwrap_or_else(|e| failure_and_exit!("Failed to resolve script: {}", e)); let script_file = &script_file; - verify::verify_script(script_file, is_env_on("RUNTS_SKIP_VERIFY") || is_env_on("RSV")); + verify::verify_script( + script_file, + is_env_on("RUNTS_SKIP_VERIFY") || is_env_on("RSV"), + ); let mut cmd = Command::new("/usr/bin/env"); // #!/usr/bin/env runts -- --allow-env @@ -63,7 +66,8 @@ pub fn do_run_script(args: &RunScriptArgs) { if arg == RUNTIME_DENO || arg == RUNTIME_BUN { continue; } - if arg == raw_script_file { // replace remote file with local file + if arg == raw_script_file { + // replace remote file with local file cmd.arg(script_file); } else { cmd.arg(arg); @@ -71,8 +75,9 @@ pub fn do_run_script(args: &RunScriptArgs) { } debugging!("Run command: {cmd:?}"); - if let Err(e) = util_cmd::run_command_and_wait(&mut cmd) { - failure_and_exit!("Run deno: {script_file} failed: {e}"); + match util_cmd::run_command_and_wait(&mut cmd) { + Ok(exit_status) => process::exit(exit_status.code().unwrap_or(0)), + Err(e) => failure_and_exit!("Run deno: {script_file} failed: {e}"), } }