feat: rm scripts/get_runrs
This commit is contained in:
1057
scripts/get_runrs/Cargo.lock
generated
1057
scripts/get_runrs/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -1,10 +0,0 @@
|
|||||||
[package]
|
|
||||||
name = "get_runrs"
|
|
||||||
version = "0.1.0"
|
|
||||||
edition = "2021"
|
|
||||||
|
|
||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
reqwest = { version = "0.11", features = ["blocking"] }
|
|
||||||
rust_util = { version = "0.6" }
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
#!/usr/bin/env runrs
|
|
||||||
|
|
||||||
//! ```cargo
|
|
||||||
//! [dependencies]
|
|
||||||
//! reqwest = { version = "0.11", features = ["blocking"] }
|
|
||||||
//! rust_util = { version = "0.6" }
|
|
||||||
//! ```
|
|
||||||
|
|
||||||
use std::{env, fs};
|
|
||||||
use std::os::unix::fs::PermissionsExt;
|
|
||||||
use std::path::PathBuf;
|
|
||||||
|
|
||||||
use rust_util::{failure_and_exit, success, util_env, util_os, warning};
|
|
||||||
|
|
||||||
fn main() {
|
|
||||||
let args = env::args().skip(1).collect::<Vec<_>>();
|
|
||||||
if args.is_empty() { failure_and_exit!("No arguments"); }
|
|
||||||
let script_name = args.get(0).unwrap_or_else(|| {
|
|
||||||
failure_and_exit!("No script name assigned")
|
|
||||||
});
|
|
||||||
let home = util_os::get_user_home().unwrap_or_else(|| {
|
|
||||||
failure_and_exit!("Get user home failed");
|
|
||||||
});
|
|
||||||
let home_bin = format!("{}/bin", home);
|
|
||||||
if !PathBuf::from(&home_bin).exists() {
|
|
||||||
failure_and_exit!("Home bin {} not exists", home_bin);
|
|
||||||
}
|
|
||||||
let overwrite_target_resource_script = util_env::is_env_on("OVERWRITE_SCRIPT");
|
|
||||||
let target_resource_script = format!("{}/bin/{}.rs", home, script_name);
|
|
||||||
if PathBuf::from(&target_resource_script).exists() {
|
|
||||||
if overwrite_target_resource_script {
|
|
||||||
warning!("Script: {} exists, will be overwritten", target_resource_script);
|
|
||||||
} else {
|
|
||||||
failure_and_exit!("Target script: {} exists, set env OVERWRITE_SCRIPT=1 for overwrite", target_resource_script);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let fetch_resource = format!(
|
|
||||||
"https://git.hatter.ink/hatter/runrs/raw/branch/master/scripts/{}/src/main.rs", script_name);
|
|
||||||
let response = reqwest::blocking::get(&fetch_resource).unwrap_or_else(|e| {
|
|
||||||
failure_and_exit!("Get script resource failed: {}\n- {}", e, fetch_resource);
|
|
||||||
});
|
|
||||||
if response.status().as_u16() != 200 {
|
|
||||||
failure_and_exit!("Get script resource not success: {}\n- {}", response.status().as_u16(), fetch_resource);
|
|
||||||
}
|
|
||||||
let response_bytes = response.bytes().unwrap_or_else(|e| {
|
|
||||||
failure_and_exit!("Get script resource failed: {},\n- {}", e, fetch_resource);
|
|
||||||
});
|
|
||||||
fs::write(&target_resource_script, response_bytes).unwrap_or_else(|e| {
|
|
||||||
failure_and_exit!("Write to script file: {} failed: {}", target_resource_script, e);
|
|
||||||
});
|
|
||||||
fs::set_permissions(&target_resource_script, PermissionsExt::from_mode(0o755)).unwrap_or_else(|e| {
|
|
||||||
failure_and_exit!("Apply executable permission to file: {:?} failed: {}", target_resource_script, e);
|
|
||||||
});
|
|
||||||
success!("Write to script file: {} success", target_resource_script);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user