updated logging to be configurable from the CLI.
This commit is contained in:
parent
b53dacbe79
commit
69bfa65d13
|
|
@ -1,5 +1,6 @@
|
|||
//! This file contains all driver code for the program.
|
||||
use core::time;
|
||||
use std::ffi::OsString;
|
||||
use std::sync::Arc;
|
||||
use std::sync::atomic::{AtomicBool, Ordering};
|
||||
use std::thread;
|
||||
|
|
@ -54,15 +55,17 @@ fn default_loop(pf: &PlayerFinder, cfg: &Config, data: &mut Data, r: &Vec<String
|
|||
|
||||
/// Main function. Mostly concerned with initialisation.
|
||||
fn main() {
|
||||
// Parse cli flags
|
||||
let cli = Cli::parse();
|
||||
|
||||
// logging initialisation
|
||||
std::env::set_var("RUST_LOG", "error");
|
||||
std::env::set_var::<&str, OsString>("RUST_LOG", cli.log_level.into());
|
||||
if let Err(e) = env_logger::init() {
|
||||
error!("{e}");
|
||||
return
|
||||
}
|
||||
|
||||
// Cli flags, Config, Data, and PlayerFinder initialisation
|
||||
let cli = Cli::parse();
|
||||
// Config, Data, and PlayerFinder initialisation
|
||||
match confy::load::<Config>("polybar-now-playing", cli.config_file.as_str()) {
|
||||
Ok(cfg) => {
|
||||
let mut data: Data = Data::default();
|
||||
|
|
|
|||
|
|
@ -1,6 +1,31 @@
|
|||
//! This file contains structs and functionality that are relevant to the Command Line Interface part of the program.
|
||||
use std::ffi::OsString;
|
||||
|
||||
use clap::Parser;
|
||||
|
||||
/// Custom enum to define the desired loglevel during run-time.
|
||||
#[derive(clap::ValueEnum, Clone)]
|
||||
pub enum LogLevel {
|
||||
TRACE,
|
||||
DEBUG,
|
||||
INFO,
|
||||
WARN,
|
||||
ERROR,
|
||||
}
|
||||
|
||||
/// Implement Into<OsString> for LogLevel, so it can actually be used by env_logger.
|
||||
impl Into<OsString> for LogLevel {
|
||||
fn into(self) -> OsString {
|
||||
match self {
|
||||
LogLevel::TRACE => "trace".into(),
|
||||
LogLevel::DEBUG => "debug".into(),
|
||||
LogLevel::INFO => "info".into(),
|
||||
LogLevel::WARN => "warn".into(),
|
||||
LogLevel::ERROR => "error".into(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Program which finds the active mpris player and displays metadata about the playing piece of media.
|
||||
///
|
||||
/// This program is intended to be used with polybar.
|
||||
|
|
@ -15,4 +40,9 @@ pub struct Cli {
|
|||
/// This mode prints all active players to stdout, to allow one to find the appropriate player names to use in the config files.
|
||||
#[arg(short = 'l', long = "list")]
|
||||
pub list: bool,
|
||||
/// Set log level.
|
||||
///
|
||||
/// Sets the log level to print to stdout.
|
||||
#[arg(long = "log", value_enum, default_value = "error")]
|
||||
pub log_level: LogLevel
|
||||
}
|
||||
Loading…
Reference in New Issue