use std::fs; fn main() { env_logger::init(); let content = fs::read_to_string("config.toml").unwrap_or_else(|e| { eprintln!("Failed to read config.toml: {e}"); std::process::exit(1); }); let config: proton_bridge::config::Config = toml::from_str(&content).unwrap_or_else(|e| { eprintln!("Failed to parse config.toml: {e}"); std::process::exit(1); }); let imap_port = config.bridge.imap_port; let smtp_port = config.bridge.smtp_port; eprint!("Starting ProtonMail bridge..."); proton_bridge::start(config).unwrap_or_else(|e| { eprintln!("\nBridge failed to start: {e}"); std::process::exit(1); }); eprintln!(" ready. IMAP :{imap_port} SMTP :{smtp_port} (Ctrl-C to stop)"); // Block until Ctrl-C (the servers run in a background thread). let rt = tokio::runtime::Builder::new_current_thread() .enable_all() .build() .expect("tokio runtime"); rt.block_on(tokio::signal::ctrl_c()).ok(); println!("Shutting down."); }