use std::process::ExitCode;
use crate::cli_args::CliArgs;
use barotrauma_compress::{compress, decompress};
use clap::Parser as _;
mod cli_args;
macro_rules! debug_println {
($($arg:tt)*) => (#[cfg(debug_assertions)] println!($($arg)*));
}
fn main() -> ExitCode {
if let Err(e) = handle_args() {
eprintln!("{}", e);
ExitCode::FAILURE
} else {
ExitCode::SUCCESS
}
}
fn handle_args() -> Result<(), String> {
let args: CliArgs = CliArgs::parse();
debug_println!("Input: {}", args.input.display());
if args.input.is_file() {
decompress(args.input).map_err(|e| format!("Error performing decompress operation: {e}"))
} else if args.input.is_dir() {
compress(args.input).map_err(|e| format!("Error performing compress operation: {e}"))
} else {
Err("Could not open input as a file or directory. Does it exist?".to_string())
}
}