diff --git a/decrypt-rs/src/main.rs b/decrypt-rs/src/main.rs index bcb8827..6aac17b 100755 --- a/decrypt-rs/src/main.rs +++ b/decrypt-rs/src/main.rs @@ -15,7 +15,17 @@ use rust_util::{failure_and_exit, information, opt_result, success, warning, XRe // see https://git.hatter.ink/hatter/crypto/src/branch/master/src/main/java/me/hatter/tools/crypto/stream/DecryptTool.java fn main() -> XResult<()> { - let args: Vec = std::env::args().skip(1).collect(); + let mut rm_enc_file: bool = false; + let args: Vec = std::env::args() + .skip(1) + .filter(|arg| { + if arg == "-R" || arg == "--rm-enc-file" { + rm_enc_file = true; + return false; + } + true + }) + .collect(); if args.len() != 3 { failure_and_exit!("crypt.rs "); } @@ -70,6 +80,12 @@ fn main() -> XResult<()> { opt_result!(fs::write(&file_out, decrypted), "Write file out: {}, failed: {}", file_out); success!("Write file out succeed!"); + if rm_enc_file { + information!("Remove file: {}", file_in); + if let Err(e) = fs::remove_file(file_in) { + warning!("Remove file: {} failed: {}", file_in, e); + } + } Ok(()) }