Added Core Features chroium, config,console_ui,headless,webserver,states

This commit is contained in:
Joey Pillunat 2025-10-24 11:52:34 +02:00
parent 4c6c6d572c
commit c3c60efb81
13 changed files with 688 additions and 0 deletions

View file

@ -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(())
}