diff --git a/Cargo.lock b/Cargo.lock index 5b14ab7..0b5f516 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -100,7 +100,6 @@ dependencies = [ "git-version", "google_home", "hostname", - "inventory", "mlua", "reqwest", "rumqttc", diff --git a/Cargo.toml b/Cargo.toml index b099d60..4eb207c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -78,7 +78,6 @@ dotenvy = { workspace = true } git-version = "0.3.9" google_home = { workspace = true } hostname = { workspace = true } -inventory = { workspace = true } mlua = { workspace = true } reqwest = { workspace = true } rumqttc = { workspace = true } diff --git a/automation_lib/src/lib.rs b/automation_lib/src/lib.rs index 06c6081..59d2769 100644 --- a/automation_lib/src/lib.rs +++ b/automation_lib/src/lib.rs @@ -1,6 +1,8 @@ #![allow(incomplete_features)] #![feature(iterator_try_collect)] +use tracing::debug; + pub mod action_callback; pub mod config; pub mod device; @@ -34,4 +36,15 @@ impl Module { } } +pub fn load_modules(lua: &mlua::Lua) -> mlua::Result<()> { + debug!("Loading modules..."); + for module in inventory::iter:: { + debug!(name = module.get_name(), "Registering"); + let table = module.register(lua)?; + lua.register_module(module.get_name(), table)?; + } + + Ok(()) +} + inventory::collect!(Module); diff --git a/src/main.rs b/src/main.rs index 9dcd1c2..5a02b77 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,8 +12,8 @@ use std::time::{SystemTime, UNIX_EPOCH}; use ::config::{Environment, File}; use automation_lib::config::{FulfillmentConfig, MqttConfig}; use automation_lib::device_manager::DeviceManager; +use automation_lib::helpers; use automation_lib::mqtt::{self, WrappedAsyncClient}; -use automation_lib::{Module, helpers}; use axum::extract::{FromRef, State}; use axum::http::StatusCode; use axum::routing::post; @@ -141,12 +141,7 @@ async fn app() -> anyhow::Result<()> { })?; lua.globals().set("print", print)?; - debug!("Loading modules..."); - for module in inventory::iter:: { - debug!(name = module.get_name(), "Registering"); - let table = module.register(&lua)?; - lua.register_module(module.get_name(), table)?; - } + automation_lib::load_modules(&lua)?; let mqtt = lua.create_table()?; let event_channel = device_manager.event_channel();