libsftpman/cli/
runner.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use clap::ArgMatches;

use crate::manager::Manager;

use super::exit;
use super::preflight_check::preflight_check;

pub fn run(manager: &Manager, arg_matches: &ArgMatches) -> exit::Status {
    match arg_matches.subcommand() {
        Some(("ls", sub_matches)) => super::ls::run(manager, sub_matches),

        Some(("mount", sub_matches)) => super::mount::run(manager, sub_matches),
        Some(("mount_all", _sub_matches)) => super::mount::run_mount_all(manager),

        Some(("umount", sub_matches)) => super::umount::run(manager, sub_matches),
        Some(("umount_all", _sub_matches)) => super::umount::run_umount_all(manager),

        Some(("preflight_check", _sub_matches)) => preflight_check(manager),

        Some(("rm", sub_matches)) => super::remove::run(manager, sub_matches),

        Some(("create", sub_matches)) => super::create_update::run_create(manager, sub_matches),
        Some(("update", sub_matches)) => super::create_update::run_update(manager, sub_matches),

        Some((cmd, _)) => {
            log::error!(
                "Unknown subcommand {0}. Try removing it and running --help",
                cmd
            );
            exit::Status::UnknownCommand
        }

        None => {
            log::error!("Unknown subcommand. Try removing it and running --help");
            exit::Status::UnknownCommand
        }
    }
}