Stuff
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
mod collector;
|
||||
mod persistence;
|
||||
mod tasks;
|
||||
|
||||
use clap::Parser;
|
||||
@ -7,6 +8,7 @@ use common::{BulbMap, ClientMessage, ServerMessage};
|
||||
use futures_util::{SinkExt, StreamExt};
|
||||
use lighter_manager::{manager::BulbsConfig, mqtt_conf::MqttConfig};
|
||||
use log::LevelFilter;
|
||||
use persistence::Persistence;
|
||||
use serde::Deserialize;
|
||||
use std::convert::Infallible;
|
||||
use std::net::SocketAddr;
|
||||
@ -46,6 +48,8 @@ pub struct Config {
|
||||
|
||||
collectors: CollectorConfig,
|
||||
|
||||
persistence_dir: Option<PathBuf>,
|
||||
|
||||
#[serde(flatten)]
|
||||
bulbs: BulbsConfig,
|
||||
|
||||
@ -55,6 +59,7 @@ pub struct Config {
|
||||
|
||||
pub struct State {
|
||||
config: Config,
|
||||
persistence: Persistence,
|
||||
client_message: broadcast::Sender<ClientRequest>,
|
||||
server_message: broadcast::Sender<ServerMessage>,
|
||||
}
|
||||
@ -85,9 +90,15 @@ async fn main() {
|
||||
let (client_message, _) = broadcast::channel(100);
|
||||
|
||||
let state = State {
|
||||
config,
|
||||
client_message,
|
||||
server_message,
|
||||
persistence: match &config.persistence_dir {
|
||||
Some(path) => Persistence::new_persistence(path.to_owned())
|
||||
.await
|
||||
.expect("Failed to open persistence dir"),
|
||||
None => Persistence::new().await,
|
||||
},
|
||||
config,
|
||||
};
|
||||
let state = Box::leak(Box::new(state));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user