fast_scp/
cli.rs

1use clap::{Parser, Subcommand};
2use std::path::PathBuf;
3
4#[derive(Parser)]
5#[clap(version, about, long_about = None)]
6pub struct Cli {
7    #[clap(subcommand)]
8    pub command: Commands,
9}
10
11#[derive(Subcommand)]
12pub enum Commands {
13    #[clap(about = "Copy a file to a remote host", alias = "r")]
14    Receive {
15        #[clap(help = "Remote source to copy from")]
16        source: String,
17
18        #[clap(help = "Local destination to copy to")]
19        destination: String,
20
21        #[clap(long, help = "Remote host to connect to")]
22        host: String,
23
24        #[clap(
25            short,
26            long,
27            help = "Remote username to connect as",
28            default_value = "root"
29        )]
30        user: String,
31
32        #[clap(short, long, help = "Path to private key")]
33        private_key: Option<PathBuf>,
34
35        #[clap(help = "Replace the file if it exists", long, default_value = "false")]
36        replace: bool,
37    },
38}