use crate::GlobalsFinal;
use anyhow::Result as AResult;
use clap::Args;
use std::path::PathBuf;
#[derive(Args)]
pub struct SubCmdArgs {
source: PathBuf,
destination: PathBuf,
}
impl SubCmdArgs {
pub fn handle(&self, globals: GlobalsFinal) -> AResult<()> {
if !self.source.is_file() {
let e = format!("File {} doesn't exist", self.source.display());
log::error!("{e}");
anyhow::bail!(e);
}
log::debug!(
"Source archive (PAX fmt assumed) : {}",
self.source.display()
);
log::debug!(
"Destination archive (GNU fmt) : {}",
self.destination.display()
);
super::convert::convert(&self.source, &self.destination, &globals)?;
Ok(())
}
}