diff options
Diffstat (limited to 'rola-cli/src/output/setup.rs')
| -rw-r--r-- | rola-cli/src/output/setup.rs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/rola-cli/src/output/setup.rs b/rola-cli/src/output/setup.rs new file mode 100644 index 0000000..824348b --- /dev/null +++ b/rola-cli/src/output/setup.rs @@ -0,0 +1,41 @@ +use mingling::{Program, macros::program_setup}; +use shared_functions::info; + +use crate::{ + ThisProgram, + output::{ + ansi_control::disable_ansi, + env_logger::{EnvLogger, init_envlogger}, + }, +}; + +#[program_setup] +pub fn color_output_setup(program: &mut Program<ThisProgram>) { + program.global_flag("--no-color", |_| { + disable_ansi(); + }); +} + +#[program_setup] +pub fn env_logger_setup(program: &mut Program<ThisProgram>) { + program.stdout_setting.verbose = program.pick_global_flag(["-V", "--verbose"]); + let log_show_time = program.pick_global_flag("--log-time"); + let log_level = program + .pick_global_argument("--log-level") + .unwrap_or("info".to_string()); + if program.stdout_setting.verbose { + init_envlogger(EnvLogger { + show_time: log_show_time, + show_level: log_level.as_str() != "disable", + level: match log_level.as_str() { + "trace" => log::Level::Trace, + "debug" => log::Level::Debug, + "warn" => log::Level::Warn, + "error" => log::Level::Error, + _ => log::Level::Info, + }, + }); + } + + info!("Verbose mode enabled!"); +} |
