mod commands; mod config; mod discord; mod matrix; mod types; mod util; use std::env; #[tokio::main] async fn main() { let _ = config::config(); let has_discord = env::var("DISCORD_TOKEN").is_ok(); let has_matrix = env::var("MATRIX_HOMESERVER").is_ok() && env::var("MATRIX_USERNAME").is_ok() && env::var("MATRIX_PASSWORD").is_ok(); match (has_discord, has_matrix) { (true, true) => { println!("Both Discord and Matrix credentials found; defaulting to Discord."); discord::run().await; } (true, false) => { discord::run().await; } (false, true) => { matrix::run().await; } (false, false) => { eprintln!( "No credentials found. Set DISCORD_TOKEN or \ MATRIX_HOMESERVER + MATRIX_USERNAME + MATRIX_PASSWORD." ); std::process::exit(1); } } }