use std::time::Instant;
pub mod logger;
mod prompts;
mod handlers;
mod command;
pub fn run() {
let start_time = Instant::now();
let global_args = &command::get_command().get_matches();
logger::configure_logger(&global_args);
if let Some(args) = global_args.subcommand_matches("box") {
let (total, error) = handlers::handle_box(args);
println!("[{}/{}] files encrypted", total - error, total);
if total == error {
std::process::exit(1);
}
}
if let Some(args) = global_args.subcommand_matches("unbox") {
let (total, error) = handlers::handle_unbox(args);
println!("[{}/{}] files decrypted", total - error, total);
if total == error {
std::process::exit(1);
}
}
if let Some(args) = global_args.subcommand_matches("information") {
handlers::handle_information(args);
}
if let Some(args) = global_args.subcommand_matches("profile") {
if let Some(args) = args.subcommand_matches("new") {
handlers::handle_profile_create(args);
}
if let Some(args) = args.subcommand_matches("delete") {
handlers::handle_profile_delete(args);
}
if let Some(args) = args.subcommand_matches("set") {
handlers::handle_profile_set(args);
}
if let Some(args) = args.subcommand_matches("get") {
handlers::handle_profile_get(args);
}
if let Some(args) = args.subcommand_matches("list") {
handlers::handle_profile_list(args);
}
}
if let Some(args) = global_args.subcommand_matches("key") {
if let Some(args) = args.subcommand_matches("new") {
handlers::handle_key_new(args);
}
if let Some(args) = args.subcommand_matches("get") {
handlers::handle_key_get(args);
}
if let Some(args) = args.subcommand_matches("set") {
handlers::handle_key_set(args);
}
}
let duration = start_time.elapsed();
println!("Time taken: {:.2?}", duration);
}