Added logger
This commit is contained in:
parent
208eed348b
commit
08eca1a2d0
|
@ -12,5 +12,9 @@ chrono = "0.4.38"
|
|||
clap = { version = "4.5.7", features = ["derive"] }
|
||||
dlopen = "0.1.8"
|
||||
dlopen_derive = "0.1.4"
|
||||
env_logger = "0.11.3"
|
||||
libc = "0.2.155"
|
||||
log = "0.4.21"
|
||||
serde = { version = "1.0.203", features = ["derive"] }
|
||||
toml = "0.8.14"
|
||||
x11 = { version = "2.21.0", features = ["xlib"] }
|
||||
|
|
|
@ -16,7 +16,7 @@ impl Display {
|
|||
let display = xlib::XOpenDisplay(std::ptr::null());
|
||||
|
||||
if display.is_null() {
|
||||
eprintln!("ERROR: Could not open x11 display");
|
||||
log::error!("Could not open x11 display");
|
||||
return Err(());
|
||||
}
|
||||
|
||||
|
|
19
src/main.rs
19
src/main.rs
|
@ -14,6 +14,22 @@ struct CliArgs {
|
|||
|
||||
fn main() -> ExitCode {
|
||||
// let ca = CliArgs::parse();
|
||||
if ca.debug {
|
||||
env_logger::builder()
|
||||
.filter(None, log::LevelFilter::Debug)
|
||||
.init();
|
||||
} else {
|
||||
env_logger::builder()
|
||||
.filter(None, log::LevelFilter::Info)
|
||||
.init();
|
||||
let config;
|
||||
match config::Config::new(ca.config_dir.as_std_path()) {
|
||||
Ok(v) => config = v,
|
||||
Err(e) => {
|
||||
log::error!("Failed to parse config: {e:?}");
|
||||
return ExitCode::from(2);
|
||||
}
|
||||
};
|
||||
let Ok(mut disp) = display::Display::new() else {
|
||||
return ExitCode::from(1);
|
||||
};
|
||||
|
@ -23,7 +39,7 @@ fn main() -> ExitCode {
|
|||
if let Err(e) = pm.load(PathBuf::from("./plugins")
|
||||
//ca.plugin_dir.as_std_path().to_path_buf()
|
||||
){
|
||||
eprintln!("ERROR: Failed to load plugins: {e:?}");
|
||||
return ExitCode::from(3);
|
||||
}
|
||||
|
||||
pm.init_plugins();
|
||||
|
@ -35,6 +51,7 @@ fn main() -> ExitCode {
|
|||
|
||||
|
||||
let _ = disp.write_display_name(&vals.join(" | "));
|
||||
log::warn!("Failed to write too bar: {e}");
|
||||
std::thread::sleep(Duration::from_millis(250));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -20,13 +20,15 @@ impl PlugMan {
|
|||
}
|
||||
|
||||
pub fn load(&mut self, dir: PathBuf) -> Result<(), PluginError>{
|
||||
log::debug!("Loading plugins from {:?}", dir);
|
||||
|
||||
let files = std::fs::read_dir(dir)?;
|
||||
|
||||
for file in files {
|
||||
let entry = file?;
|
||||
if entry.file_type()?.is_file() {
|
||||
let plugin = Plugin::load(entry.path().to_path_buf())?;
|
||||
println!("INFO: Loaded plugin {} {} licensed with {}",
|
||||
log::info!("Loaded plugin '{}' ({}) licensed with {}",
|
||||
plugin.name().clone(),
|
||||
plugin.version().clone().unwrap_or("None".to_string()),
|
||||
plugin.license().clone().unwrap_or("None".to_string())
|
||||
|
@ -37,7 +39,8 @@ impl PlugMan {
|
|||
self.load(entry.path().to_path_buf())?;
|
||||
}
|
||||
}
|
||||
println!("INFO: Loaded {} plugins", self.plugins.len());
|
||||
log::error!("No plugins found");
|
||||
log::info!("Loaded {} plugins", self.plugins.len());
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
@ -52,7 +55,7 @@ impl PlugMan {
|
|||
pub fn reload_plugins(&mut self) {
|
||||
for plugin in &mut self.plugins {
|
||||
if let Err(e) = plugin.reload() {
|
||||
eprintln!("ERROR: Failed to reload plugin {:?}: {e}", plugin.name());
|
||||
log::error!("Failed to reload plugin {:?}: {e}", plugin.name());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
use std::{alloc::Layout, ffi::{c_char, c_uint, CStr, CString}, path::PathBuf};
|
||||
use std::{alloc::Layout, ffi::{c_char, CStr}, path::PathBuf};
|
||||
|
||||
use dlopen::raw::Library;
|
||||
|
||||
|
@ -38,7 +38,7 @@ impl Plugin {
|
|||
}
|
||||
|
||||
fn reload_symbols(&mut self) -> Result<(), dlopen::Error> {
|
||||
println!("INFO: Loading {:?}", self.path);
|
||||
log::debug!("Loading {:?}", self.path);
|
||||
let lib = Library::open(&self.path)?;
|
||||
let symbols = PluginSyms {
|
||||
init: unsafe { lib.symbol("plug_init")? },
|
||||
|
@ -51,14 +51,13 @@ impl Plugin {
|
|||
};
|
||||
unsafe {
|
||||
if (symbols.get_info)().is_null() {
|
||||
eprintln!("ERROR: Info fields for plugin {:?} are null", self.path);
|
||||
log::error!("Info fields for plugin {:?} are null", self.path);
|
||||
self.disable();
|
||||
}
|
||||
}
|
||||
|
||||
self.syms = Some(symbols);
|
||||
self.lib = Some(lib);
|
||||
println!("INFO: Loading OK");
|
||||
Ok(())
|
||||
}
|
||||
pub fn syms(&self) -> PluginSyms {
|
||||
|
@ -97,7 +96,9 @@ impl Plugin {
|
|||
String::from_raw_parts(buf, len, cap)
|
||||
};
|
||||
|
||||
println!("Polled: {}", s);
|
||||
if !s.is_empty() {
|
||||
log::debug!("Polled: {}", s);
|
||||
}
|
||||
Ok(s)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user