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}