use clap::Parser;
use std::path::PathBuf;
use std::process;
use transfer_family_cli::{Config, run};
#[tokio::main]
#[allow(clippy::print_stderr)] async fn main() {
let args = Args::parse();
let config = Config::new(
args.connector_id,
args.s3_root,
args.region,
args.profile,
args.download_dir,
);
if let Err(e) = run(config).await {
eprintln!("{e}");
process::exit(if e.is_retryable() { 2 } else { 1 });
}
}
#[derive(clap::Parser, Debug)]
#[command(
name = "transfer-family-cli",
about = "Browse remote SFTP via AWS Transfer Family connector"
)]
struct Args {
#[arg(long, env = "TRANSFER_CONNECTOR_ID")]
connector_id: String,
#[arg(long, env = "TRANSFER_S3_ROOT")]
s3_root: String,
#[arg(long, env = "AWS_REGION")]
region: Option<String>,
#[arg(long, env = "AWS_PROFILE")]
profile: Option<String>,
#[arg(long, default_value = ".", env = "TRANSFER_DOWNLOAD_DIR")]
download_dir: PathBuf,
}