1pub mod application;
2pub mod cli;
3pub mod database;
4pub mod error;
5pub mod prelude;
6pub mod provider;
7pub mod subcommand;
8pub mod utility;
9
10use prelude::*;
11use subcommand::install;
12use subcommand::reinstall;
13use subcommand::remove;
14
15pub fn run_main() -> Result<()> {
16 let matches = cli::get_command_line().get_matches();
18
19 match matches.subcommand() {
20 Some((cli::SUBCOMMAND_INSTALL, sub_matches)) => {
21 install::run(sub_matches)?;
22 }
23
24 Some((cli::SUBCOMMAND_REMOVE, sub_matches)) => {
25 remove::run(sub_matches)?;
26 }
27
28 Some((cli::SUBCOMMAND_REINSTALL, sub_matches)) => {
29 reinstall::run(sub_matches)?;
30 }
31
32 #[allow(clippy::unreachable)]
33 _ => unreachable!("All subcommands should be defined"),
34 }
35
36 Ok(())
37}