libsftpman/cli/
runner.rs

1use clap::ArgMatches;
2
3use crate::manager::Manager;
4
5use super::exit;
6use super::preflight_check::preflight_check;
7
8pub fn run(manager: &Manager, arg_matches: &ArgMatches) -> exit::Status {
9    match arg_matches.subcommand() {
10        Some(("ls", sub_matches)) => super::ls::run(manager, sub_matches),
11
12        Some(("mount", sub_matches)) => super::mount::run(manager, sub_matches),
13        Some(("mount_all", _sub_matches)) => super::mount::run_mount_all(manager),
14
15        Some(("umount", sub_matches)) => super::umount::run(manager, sub_matches),
16        Some(("umount_all", _sub_matches)) => super::umount::run_umount_all(manager),
17
18        Some(("preflight_check", _sub_matches)) => preflight_check(manager),
19
20        Some(("rm", sub_matches)) => super::remove::run(manager, sub_matches),
21
22        Some(("create", sub_matches)) => super::create_update::run_create(manager, sub_matches),
23        Some(("update", sub_matches)) => super::create_update::run_update(manager, sub_matches),
24
25        Some((cmd, _)) => {
26            log::error!(
27                "Unknown subcommand {0}. Try removing it and running --help",
28                cmd
29            );
30            exit::Status::UnknownCommand
31        }
32
33        None => {
34            log::error!("Unknown subcommand. Try removing it and running --help");
35            exit::Status::UnknownCommand
36        }
37    }
38}