summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index e120534..38a6c44 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,4 +1,5 @@
use serde::Deserialize;
+use std::net::{SocketAddr, ToSocketAddrs};
use std::path::{Path, PathBuf};
use structopt::StructOpt;
use warp::Filter;
@@ -8,7 +9,7 @@ extern crate log;
#[derive(Debug, Deserialize)]
struct Config {
webroot: PathBuf,
- port: u16,
+ listen: String,
tls_key: PathBuf,
tls_cert: PathBuf,
}
@@ -34,7 +35,7 @@ enum EwwwError {
}
#[tokio::main]
-async fn main() {
+async fn main() -> anyhow::Result<()> {
pretty_env_logger::init();
info!("ewww starting up");
@@ -42,7 +43,11 @@ async fn main() {
let config = read_config(&opt.config).unwrap();
let webroot = config.webroot.canonicalize().unwrap();
+ let addr: SocketAddr = config.listen.to_socket_addrs().unwrap().next().unwrap();
+
info!("webroot: {:?}", webroot);
+ info!("listen on {}", addr);
+
let log = warp::log("ewww");
let webroot = warp::any().and(warp::fs::dir(webroot)).with(log);
@@ -50,8 +55,10 @@ async fn main() {
.tls()
.key_path(config.tls_key)
.cert_path(config.tls_cert)
- .run(([127, 0, 0, 1], config.port))
+ .run(addr)
.await;
+
+ Ok(())
}
fn read_config(filename: &Path) -> anyhow::Result<Config> {