2025-11-06 00:01:46 -07:00
|
|
|
// #![no]
|
|
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
#[macro_use]
|
|
|
|
|
extern crate log;
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-06 00:01:46 -07:00
|
|
|
mod manager;
|
|
|
|
|
|
|
|
|
|
use std::sync::{Arc, Mutex};
|
|
|
|
|
|
|
|
|
|
use unshell_modules::{Module, ModuleError, module_interface};
|
|
|
|
|
|
|
|
|
|
use crate::manager::Manager;
|
2025-11-05 15:17:31 -07:00
|
|
|
|
|
|
|
|
module_interface! {
|
|
|
|
|
Interface {
|
|
|
|
|
fn test1();
|
|
|
|
|
fn test2();
|
|
|
|
|
fn test3();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-11-06 00:01:46 -07:00
|
|
|
// const modules: Arc<Mutex<Vec<Module>>> = Arc::new(Mutex::new(Vec::new()));
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
fn main() {
|
|
|
|
|
pretty_env_logger::init();
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-05 22:59:01 -07:00
|
|
|
info!("Initalized");
|
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) {
|
|
|
|
|
modules.push(Module::new(&arg)?)
|
|
|
|
|
}
|
|
|
|
|
let _manager = Manager::new(modules);
|
|
|
|
|
|
|
|
|
|
// for i in 1..args.len() {}
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-06 00:01:46 -07:00
|
|
|
// let interface = module.get_interface::<Interface>()?;
|
2025-11-05 15:17:31 -07:00
|
|
|
|
2025-11-06 00:01:46 -07:00
|
|
|
// interface.test1();
|
2025-11-05 22:59:01 -07:00
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}() {
|
|
|
|
|
Ok(_) => {}
|
|
|
|
|
Err(e) => {
|
|
|
|
|
error!("ERROR! {:?}", e);
|
|
|
|
|
}
|
2025-11-05 15:17:31 -07:00
|
|
|
}
|
|
|
|
|
}
|