|
|
@ -0,0 +1,44 @@ |
|
|
|
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 <warrick@sothr.com>")
|
|
|
|
.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::<i32>()
|
|
|
|
.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();
|
|
|
|
}
|