aboutsummaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorLibravatar Silas Bartha <silas@exvacuum.dev>2024-05-16 20:28:58 -0400
committerLibravatar Silas Bartha <silas@exvacuum.dev>2024-05-16 20:28:58 -0400
commit56aafda8495243fa939bdce01f36d4adbf4ec556 (patch)
treedf8b1bbe1dc0e8b3f2d179a36c015b16e1f3d483 /src/lib.rs
parent363157a7f831fc29c6ed1a26880ea756521317b9 (diff)
Added configurable logfile path
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 92e1809..0a1a925 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,4 +1,4 @@
-use std::{io::stdout, fs::OpenOptions};
+use std::{fs::OpenOptions, io::stdout, path::PathBuf, sync::{Arc, Mutex}};
use bevy::{
log::{
@@ -16,6 +16,7 @@ use grex_dither_post_process::DitherPostProcessPlugin;
use grex_framebuffer_extract::FramebufferExtractPlugin;
pub use crossterm;
+use once_cell::sync::Lazy;
pub use ratatui;
pub mod components;
@@ -23,10 +24,23 @@ pub mod events;
pub mod resources;
mod systems;
-pub struct TerminalDisplayPlugin;
+static LOG_PATH: Lazy<Arc<Mutex<PathBuf>>> = Lazy::new(|| Arc::new(Mutex::new(PathBuf::default())));
+
+pub struct TerminalDisplayPlugin {
+ pub log_path: PathBuf,
+}
+
+impl Default for TerminalDisplayPlugin {
+ fn default() -> Self {
+ Self {
+ log_path: "debug.log".into()
+ }
+ }
+}
impl Plugin for TerminalDisplayPlugin {
fn build(&self, app: &mut App) {
+ *LOG_PATH.lock().expect("Failed to get lock on log path mutex") = self.log_path.clone();
app.add_plugins((
DitherPostProcessPlugin,
FramebufferExtractPlugin,
@@ -36,7 +50,7 @@ impl Plugin for TerminalDisplayPlugin {
.write(true)
.create(true)
.truncate(true)
- .open("debug.log")
+ .open(LOG_PATH.lock().expect("Failed to get lock on log path mutex").clone())
.unwrap();
let file_layer = tracing_subscriber::fmt::Layer::new()
.with_writer(log_file)
@@ -59,7 +73,6 @@ impl Plugin for TerminalDisplayPlugin {
.insert_resource(resources::Terminal::default())
.insert_resource(resources::EventQueue::default())
.insert_resource(resources::TerminalInput::default())
- .insert_resource(resources::TerminalUI::default())
.add_event::<events::TerminalInputEvent>();
}
}