65 lines
2.4 KiB
Plaintext
Executable File
65 lines
2.4 KiB
Plaintext
Executable File
#!/usr/bin/env run-cargo-script
|
|
|
|
use std::env;
|
|
use std::path::PathBuf;
|
|
use std::process::Command;
|
|
|
|
fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
if let Some(args_1) = env::args().nth(1) {
|
|
match args_1.as_str() {
|
|
"md" => {}, // TODO md
|
|
"ms" => {}, // TODO ms
|
|
_ => {}, // IGNORE
|
|
}
|
|
}
|
|
|
|
print_info("Git Add All");
|
|
Command::new("git").args(&["add", "."]).spawn()?.wait()?;
|
|
print_info("Git Commit All");
|
|
Command::new("git").args(&["commit", "-a", "-m", "'auto sync'"]).spawn()?.wait()?;
|
|
print_info("Git Push");
|
|
Command::new("git").args(&["push"]).spawn()?.wait()?;
|
|
print_info("Sync Server Repo");
|
|
let page_name = match find_parents_exists_dir("page") {
|
|
Some(path) => path.file_name().unwrap().to_str().unwrap().to_owned(), None => {
|
|
print_warn("Cannot find page name!");
|
|
return Ok(());
|
|
},
|
|
};
|
|
let sync_url = "https://playsecurity.org/update_pages?".to_owned() + &page_name;
|
|
print_info(&format!("curl URL: {}", sync_url));
|
|
Command::new("curl").args(&[sync_url]).spawn()?.wait()?;
|
|
|
|
print_ok("Sync success!");
|
|
Ok(())
|
|
}
|
|
|
|
// ------------------------------------------------------------------------------------ //
|
|
|
|
pub fn find_parents_exists_dir(dir: &str) -> Option<PathBuf> {
|
|
match PathBuf::from(".").canonicalize() {
|
|
Err(_) => None,
|
|
Ok(mut path) => loop {
|
|
if path.join(dir).is_dir() { return Some(path); }
|
|
if !path.pop() { return None;}
|
|
}
|
|
}
|
|
}
|
|
|
|
const RED: &str = "\x1B[91m";
|
|
const GREEN: &str = "\x1B[92m";
|
|
const YELLOW: &str = "\x1B[93m";
|
|
const BOLD: &str = "\x1B[1m";
|
|
const UNDER: &str = "\x1B[4m";
|
|
const END: &str = "\x1B[0m";
|
|
|
|
fn is_verbose() -> bool { if let Ok(v) = std::env::var("VERBOSE") { v == "1" } else { false } }
|
|
|
|
fn exit_with_error() -> ! { std::process::exit(1) }
|
|
fn exit_with_error_message(msg: &str) -> ! { print_error(msg); exit_with_error() }
|
|
|
|
fn print_info (msg: &str) { println!("{b}[INFO ]{e} {m}", b = BOLD, e = END, m = msg); }
|
|
fn print_ok (msg: &str) { println!("{g}{b}[OK ]{e} {g}{m}{e}", g = GREEN, b = BOLD, e = END, m = msg); }
|
|
fn print_warn (msg: &str) { println!("{y}{b}[WARN ]{e} {y}{m}{e}", y = YELLOW, b = BOLD, e = END, m = msg); }
|
|
fn print_error(msg: &str) { println!("{r}{b}[ERROR]{e} {r}{m}{e}", r = RED, b = BOLD, e = END, m = msg); }
|