use clap::Args;
use homeboy::transfer::{self, TransferConfig};
use super::CmdResult;
pub use homeboy::transfer::TransferOutput;
#[derive(Args)]
pub struct TransferArgs {
pub source: String,
pub destination: String,
#[arg(short, long)]
pub recursive: bool,
#[arg(short, long)]
pub compress: bool,
#[arg(long)]
pub dry_run: bool,
#[arg(long)]
pub exclude: Vec<String>,
}
pub fn run(args: TransferArgs, _global: &crate::commands::GlobalArgs) -> CmdResult<TransferOutput> {
let config = TransferConfig {
source: args.source,
destination: args.destination,
recursive: args.recursive,
compress: args.compress,
dry_run: args.dry_run,
exclude: args.exclude,
};
transfer::transfer(&config)
}