libsftpman/cli/
mod.rs

1use clap::{Arg, ArgAction, Command};
2
3mod create_update;
4mod exit;
5mod ls;
6mod mount;
7mod preflight_check;
8mod remove;
9mod runner;
10mod umount;
11
12pub use exit::Status as ExitStatus;
13pub use runner::run;
14
15pub fn build() -> Command {
16    Command::new("sftpman")
17        .about("sftpman is an application for managing and mounting sshfs (SFTP) filesystems")
18        .subcommand_required(true)
19        .arg_required_else_help(true)
20        .allow_external_subcommands(true)
21    .arg(
22        Arg::new("verbose")
23            .short('v')
24            .global(true)
25            .long("verbose")
26            .action(ArgAction::Count)
27            .help("Control logging verbosity (none for warn; -v for info; -vv for debug; -vvv for trace)")
28    )
29    .subcommand(ls::build())
30    .subcommand(mount::build())
31    .subcommand(mount::build_mount_all())
32    .subcommand(umount::build())
33    .subcommand(umount::build_umount_all())
34    .subcommand(preflight_check::build())
35    .subcommand(remove::build())
36    .subcommand(create_update::build_create())
37    .subcommand(create_update::build_update())
38}