feat: runrs v1.1.5, support runts deno or bun runtime
This commit is contained in:
2
Cargo.lock
generated
2
Cargo.lock
generated
@@ -1221,7 +1221,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "runrs"
|
name = "runrs"
|
||||||
version = "1.1.4"
|
version = "1.1.5"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"argh",
|
"argh",
|
||||||
"reqwest",
|
"reqwest",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "runrs"
|
name = "runrs"
|
||||||
version = "1.1.4"
|
version = "1.1.5"
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
license = "MIT/Apache-2.0"
|
license = "MIT/Apache-2.0"
|
||||||
description = "A Tool for Run Rust Scripts"
|
description = "A Tool for Run Rust Scripts"
|
||||||
|
|||||||
@@ -4,13 +4,21 @@ use rust_util::util_env::is_env_on;
|
|||||||
use std::fs;
|
use std::fs;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
|
||||||
|
const RUNTIME_DENO: &str = "--runtime-deno";
|
||||||
|
const RUNTIME_BUN: &str = "--runtime-bun";
|
||||||
|
|
||||||
pub fn do_run_script(args: &RunScriptArgs) {
|
pub fn do_run_script(args: &RunScriptArgs) {
|
||||||
if args.arguments.is_empty() {
|
if args.arguments.is_empty() {
|
||||||
failure_and_exit!("Must assign a script file name");
|
failure_and_exit!("Must assign a script file name");
|
||||||
}
|
}
|
||||||
debugging!("Run ts args: {:?}", args.arguments);
|
debugging!("Run ts args: {:?}", args.arguments);
|
||||||
|
|
||||||
|
let mut is_runtime_deno = true;
|
||||||
let (script_file, first_arg) = (|| {
|
let (script_file, first_arg) = (|| {
|
||||||
for (i, arg) in args.arguments.iter().enumerate() {
|
for (i, arg) in args.arguments.iter().enumerate() {
|
||||||
|
if arg == RUNTIME_DENO || arg == RUNTIME_BUN {
|
||||||
|
is_runtime_deno = arg == RUNTIME_DENO;
|
||||||
|
}
|
||||||
if !arg.starts_with("--") {
|
if !arg.starts_with("--") {
|
||||||
return (arg, i == 0);
|
return (arg, i == 0);
|
||||||
}
|
}
|
||||||
@@ -20,17 +28,33 @@ pub fn do_run_script(args: &RunScriptArgs) {
|
|||||||
verify::verify_script(script_file, is_env_on("RUNTS_SKIP_VERIFY"));
|
verify::verify_script(script_file, is_env_on("RUNTS_SKIP_VERIFY"));
|
||||||
|
|
||||||
let mut cmd = Command::new("/usr/bin/env");
|
let mut cmd = Command::new("/usr/bin/env");
|
||||||
cmd.args(["-S", "deno", "run"]);
|
// #!/usr/bin/env runts -- --allow-env
|
||||||
|
// #!/usr/bin/env runts -- [--runtime-deno | --runtime-bun] <args>
|
||||||
if first_arg {
|
if first_arg {
|
||||||
let first_line_args = read_first_line_parse_args(script_file);
|
let first_line_args = read_first_line_parse_args(script_file);
|
||||||
|
debugging!("Runts first line args: {:?}", first_line_args);
|
||||||
let left_first_line_args = first_line_args
|
let left_first_line_args = first_line_args
|
||||||
.iter()
|
.iter()
|
||||||
.skip_while(|arg| *arg != "--" && *arg != "run")
|
.skip_while(|arg| *arg != "--" && *arg != "run")
|
||||||
.skip(1)
|
.skip(1)
|
||||||
|
.filter(|arg| {
|
||||||
|
if *arg == RUNTIME_DENO || *arg == RUNTIME_BUN {
|
||||||
|
is_runtime_deno = *arg == RUNTIME_DENO;
|
||||||
|
debugging!("Runts runtime arg: {}, is runtime deno: {}", *arg, is_runtime_deno);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
true
|
||||||
|
})
|
||||||
.collect::<Vec<_>>();
|
.collect::<Vec<_>>();
|
||||||
|
cmd.args(["-S", iff!(is_runtime_deno, "deno", "bun"), "run"]);
|
||||||
cmd.args(left_first_line_args);
|
cmd.args(left_first_line_args);
|
||||||
|
} else {
|
||||||
|
cmd.args(["-S", iff!(is_runtime_deno, "deno", "bun"), "run"]);
|
||||||
}
|
}
|
||||||
for arg in &args.arguments {
|
for arg in &args.arguments {
|
||||||
|
if arg == RUNTIME_DENO || arg == RUNTIME_BUN {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
cmd.arg(arg);
|
cmd.arg(arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user