31 lines
908 B
Rust
31 lines
908 B
Rust
// Incantation to not allocate a Windows console when compiled in release mode
|
|
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
|
|
|
|
mod injector;
|
|
mod panel;
|
|
mod themes;
|
|
mod web_view;
|
|
|
|
use std::{net::SocketAddr, sync::mpsc, thread};
|
|
|
|
async fn serve_panel(addr_listener: mpsc::Sender<SocketAddr>) {
|
|
let (panel_addr, panel_listener) = crate::panel::serve_panel();
|
|
addr_listener.send(panel_addr).unwrap();
|
|
panel_listener.await;
|
|
}
|
|
|
|
fn main() {
|
|
let (tx, rx) = mpsc::channel();
|
|
thread::spawn(move || {
|
|
let runtime = tokio::runtime::Builder::new_current_thread()
|
|
.enable_all()
|
|
.build()
|
|
.expect("Couldn't create async runtime");
|
|
runtime.block_on(serve_panel(tx));
|
|
});
|
|
|
|
let panel_addr = rx.recv().unwrap();
|
|
crate::web_view::open_webview(&format!("http://{}/", panel_addr))
|
|
.expect("Failed to open web view");
|
|
}
|