extern crate actix_web; extern crate clap; use clap::{App, Arg}; mod server; fn main() { let args = App::new("Dynamic DNS Server") .version("0.1") .author("Drew Short ") .about("Recieve DDNS requests and update cloudflare subdomains") .arg( Arg::with_name("config") .short("c") .long("config") .value_name("PATH") .help("Set a custom configuration file path. DEFAULT=/etc/rsddns/rsddns.yml.") .takes_value(true), ) .arg( Arg::with_name("port") .short("p") .long("port") .value_name("PORT") .help("The port to run the server on.") .takes_value(true), ) .get_matches(); let config: &str = args.value_of("config").unwrap_or("/etc/rsddns/rsddns.yml"); let port: i32 = args .value_of("port") .unwrap_or("8080") .parse::() .unwrap_or(8080); println!("Starting server on {} with config {}", port, config); actix_web::server::new(|| actix_web::App::new().resource("/", |r| r.f(server::index))) .bind(format!("localhost:{}", port)) .unwrap() .run(); }