Created
May 27, 2018 09:51
-
-
Save yoshuawuyts/1188afdf8277f26c63c0e6c7bb373d47 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#![cfg_attr(feature = "nightly", deny(missing_docs))] | |
#![cfg_attr(feature = "nightly", feature(external_doc))] | |
#![cfg_attr(feature = "nightly", doc(include = "../README.md"))] | |
#![cfg_attr(test, deny(warnings))] | |
#![cfg_attr(test, feature(plugin))] | |
#![cfg_attr(test, plugin(clippy))] | |
#[macro_use] | |
extern crate structopt; | |
extern crate actix_web; | |
extern crate failure; | |
extern crate listenfd; | |
extern crate access; | |
use actix_web::{server}; | |
use failure::Error; | |
use listenfd::ListenFd; | |
use structopt::StructOpt; | |
use access::create_app; | |
#[derive(StructOpt, Debug)] | |
struct Opts { | |
/// TCP port to listen to. | |
#[structopt(short = "p", default_value = "8080")] | |
port: usize, | |
} | |
fn main() -> Result<(), Error> { | |
let opts = Opts::from_args(); | |
let server = server::new(create_app); | |
let mut listenfd = ListenFd::from_env(); | |
let server = if let Some(listener) = listenfd.take_tcp_listener(0)? { | |
let url = format!("127.0.0.1:{}", listener.local_addr()?.port()); | |
let server = server.listen(listener); | |
println!("listening on {}", &url); | |
server | |
} else { | |
let url = format!("127.0.0.1:{}", opts.port); | |
let server = server.bind(&url)?; | |
println!("listening on {}", &url); | |
server | |
}; | |
server.run(); | |
Ok(()) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment