currency_conversion_cli/
lib.rs

1use anyhow::Result;
2use cli::SubCommand;
3use commands::update::run_update;
4use config::Config;
5
6pub mod cli;
7pub mod commands;
8pub mod config;
9pub mod errors;
10
11/// Handle commands execution
12#[cfg(not(tarpaulin_include))]
13pub fn run(
14    sub_command: SubCommand,
15    config: Config,
16    config_path: Option<String>,
17    config_profile: Option<&str>,
18) -> Result<()> {
19    use commands::convert::run_convert;
20
21    use crate::commands::{config::run_config, info::run_info, list::run_list};
22
23    match sub_command {
24        SubCommand::Update(args) => run_update(&config, &args)?,
25        SubCommand::Convert(args) => run_convert(&config, &args)?,
26        SubCommand::List(args) => run_list(&config, &args)?,
27        SubCommand::Info(args) => run_info(config, &args, config_path)?,
28        SubCommand::Config => run_config(&config, &config_path, config_profile)?,
29    }
30    Ok(())
31}