Added Core Features chroium, config,console_ui,headless,webserver,states
This commit is contained in:
parent
4c6c6d572c
commit
c3c60efb81
13 changed files with 688 additions and 0 deletions
52
Core/main.rs
52
Core/main.rs
|
|
@ -0,0 +1,52 @@
|
|||
mod web_server;
|
||||
mod state;
|
||||
mod console_ui;
|
||||
mod config;
|
||||
mod chromium;
|
||||
mod headless;
|
||||
|
||||
use state::{SharedState, Status};
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
println!("Aurora Core gestartet!");
|
||||
|
||||
//config Datei Lesen
|
||||
let exe_dir = std::env::current_exe()?.parent().unwrap().to_path_buf();
|
||||
let mut cfg = config::read_config(&exe_dir)?;
|
||||
|
||||
// Gemeinsamen Status anlegen
|
||||
let state: SharedState = std::sync::Arc::new(std::sync::Mutex::new(Status {
|
||||
web_server_active: false,
|
||||
plugin_engine_active: false,
|
||||
chromium: Default::default(),
|
||||
headless: Default::default(),
|
||||
loaded_plugins: vec![],
|
||||
running_jobs: vec![],
|
||||
}));
|
||||
|
||||
|
||||
// UI sofort anzeigen – läuft in eigenem Thread
|
||||
let ui_state = state.clone();
|
||||
let ui_thread = std::thread::spawn(move || {
|
||||
// UI blockiert hier bis q/ESC – aber nur in DIESEM Thread
|
||||
let _ = console_ui::start_ui(ui_state);
|
||||
});
|
||||
|
||||
//Chromium Check + Download
|
||||
chromium::start_check(&mut cfg, &exe_dir, state.clone()).await?;
|
||||
|
||||
// Webserver im Hintergrund starten
|
||||
let _server = web_server::start(state.clone(), cfg.server.port).await?;
|
||||
|
||||
// Headless Engine starten (Stub → Starting → Ready)
|
||||
headless::start(state.clone()).await?;
|
||||
|
||||
// Main-Thread bleibt bis UI beendet wird (q/ESC)
|
||||
let _ = ui_thread.join();
|
||||
|
||||
// (Optional) Nach UI-Ende Webserver-Task abbrechen:
|
||||
// _server.abort();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue