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) { program.global_flag("--no-color", |_| { disable_ansi(); }); } #[program_setup] pub fn env_logger_setup(program: &mut Program) { 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!"); }