2025-11-06 15:49:47 -07:00
|
|
|
use unshell_modules::{Manager, Module, ModuleError, module_interface};
|
2025-11-06 00:01:46 -07:00
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
#[macro_use]
|
|
|
|
|
extern crate log;
|
2025-11-05 15:17:31 -07:00
|
|
|
|
|
|
|
|
module_interface! {
|
|
|
|
|
Interface {
|
|
|
|
|
fn test1();
|
|
|
|
|
fn test2();
|
|
|
|
|
fn test3();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
fn main() {
|
2025-11-06 15:49:47 -07:00
|
|
|
// Init the logger (This uses like 600MB of storage)
|
2025-11-05 22:59:01 -07:00
|
|
|
pretty_env_logger::init();
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-08 10:30:21 -07:00
|
|
|
info!("Initialized");
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
match || -> Result<(), ModuleError> {
|
2025-11-06 00:01:46 -07:00
|
|
|
let args = std::env::args();
|
|
|
|
|
|
|
|
|
|
let mut modules = Vec::new();
|
|
|
|
|
for arg in args.skip(1) {
|
2025-11-06 15:49:47 -07:00
|
|
|
info!("Loading module: {}", arg);
|
2025-11-06 00:01:46 -07:00
|
|
|
modules.push(Module::new(&arg)?)
|
|
|
|
|
}
|
2025-11-06 15:49:47 -07:00
|
|
|
Manager::run(modules);
|
|
|
|
|
// manager.join();
|
2025-11-05 22:59:01 -07:00
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}() {
|
|
|
|
|
Ok(_) => {}
|
|
|
|
|
Err(e) => {
|
|
|
|
|
error!("ERROR! {:?}", e);
|
|
|
|
|
}
|
2025-11-05 15:17:31 -07:00
|
|
|
}
|
|
|
|
|
}
|