feat: v1.1.2, support runts sign

This commit is contained in:
2025-01-24 00:48:57 +08:00
parent 35a7972673
commit 47677f4705
8 changed files with 45 additions and 6 deletions

2
Cargo.lock generated
View File

@@ -1221,7 +1221,7 @@ dependencies = [
[[package]]
name = "runrs"
version = "1.1.1"
version = "1.1.2"
dependencies = [
"argh",
"reqwest",

View File

@@ -1,6 +1,6 @@
[package]
name = "runrs"
version = "1.1.1"
version = "1.1.2"
edition = "2018"
license = "MIT/Apache-2.0"
description = "A Tool for Run Rust Scripts"

View File

@@ -11,6 +11,8 @@ mod run_rs;
mod template;
mod util;
mod verify;
#[cfg(feature = "switch-ts-lang")]
mod run_ts;
#[derive(FromArgs, PartialEq, Debug)]
/// Run script
@@ -75,5 +77,10 @@ fn do_run_script(rs_args: &RunScriptArgs) {
run_rs::do_run_script(&rs_args);
return;
}
#[cfg(feature = "switch-ts-lang")]
{
run_ts::do_run_script(&rs_args);
return;
}
failure_and_exit!("Only rust script supported.");
}

View File

@@ -1,5 +1,5 @@
use rust_util::util_env::is_env_on;
use crate::{util, verify, RunScriptArgs};
use rust_util::util_env::is_env_on;
use rust_util::util_os::get_user_home;
pub fn do_run_script(rs_args: &RunScriptArgs) {

24
src/run_ts.rs Normal file
View File

@@ -0,0 +1,24 @@
use crate::{verify, RunScriptArgs};
use rust_util::util_cmd;
use rust_util::util_env::is_env_on;
use std::process::Command;
pub fn do_run_script(ts_args: &RunScriptArgs) {
if ts_args.arguments.is_empty() {
failure_and_exit!("Must assign a script file name");
}
debugging!("Run ts args: {:?}", ts_args.arguments);
let script_file = &ts_args.arguments[ts_args.arguments.len() - 1];
verify::verify_script(script_file, is_env_on("RUNTS_SKIP_VERIFY"));
let mut cmd = Command::new("/usr/bin/env");
cmd.args(["-S", "deno", "run"]);
for arg in &ts_args.arguments {
cmd.arg(arg);
}
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}");
}
}

View File

@@ -11,3 +11,10 @@ $ runts -l|--list [filter]
Install script:
$ runts -i|--install <script.ts>
Environment variables:
┌──────────────────────┬────────────────────────────────────────────────┐
│ Variable │ Description │
├──────────────────────┼────────────────────────────────────────────────┤
│ RUNTS_SKIP_VERIFY │ Skip script verification, `bool` │
└──────────────────────┴────────────────────────────────────────────────┘

View File

@@ -1,3 +1,3 @@
#!/usr/bin/env -S deno run --allow-env
#!/usr/bin/env runts -- --allow-env
console.log("Hello world.");
console.log("Hello world.");

View File

@@ -7,8 +7,9 @@ pub fn verify_script(file: &str, skip_verify: bool) {
}
match Script::verify_script_file_with_system_key_map(file) {
Ok(true) => {
debugging!("Script {file} verification success");
// Verify file ok!
debugging!("Script {file} verification success");
return;
}
Ok(false) => {
failure_and_exit!("Verify script {file} failed, no signature or bad signature");