use structopt::StructOpt;
#[derive(Debug, StructOpt)]
pub struct Options {
#[structopt(long, short = "l", env = "SERVER_NAME")]
pub name: Option<String>,
#[structopt(long, short = "a", default_value = "[::]", env = "SERVER_HOST")]
pub host: String,
#[structopt(long, short = "p", default_value = "80", env = "SERVER_PORT")]
pub port: u16,
#[structopt(long, short = "d", default_value = "./public", env = "SERVER_ROOT")]
pub root: String,
#[structopt(
long,
short = "f",
default_value = "./public/assets",
env = "SERVER_ASSETS"
)]
pub assets: String,
#[structopt(
long,
default_value = "./public/50x.html",
env = "SERVER_ERROR_PAGE_50X"
)]
pub page50x: String,
#[structopt(
long,
default_value = "./public/404.html",
env = "SERVER_ERROR_PAGE_404"
)]
pub page404: String,
#[structopt(long, short = "t", env = "SERVER_TLS")]
pub tls: Option<bool>,
#[structopt(long, env = "SERVER_TLS_PKCS12")]
pub tls_pkcs12: Option<String>,
#[structopt(long, env = "SERVER_TLS_PKCS12_PASSWD")]
pub tls_pkcs12_passwd: Option<String>,
#[structopt(long, env = "SERVER_TLS_REDIRECT_FROM")]
pub tls_redirect_from: Option<u16>,
#[structopt(long, env = "SERVER_TLS_REDIRECT_HOST")]
pub tls_redirect_host: Option<String>,
#[structopt(long, short = "g", default_value = "error", env = "SERVER_LOG_LEVEL")]
pub log_level: String,
#[structopt(long, short = "c", env = "SERVER_CORS_ALLOW_ORIGINS")]
pub cors_allow_origins: Option<String>,
#[structopt(long, short = "i", env = "SERVER_DIRECTORY_LISTING")]
pub directory_listing: Option<bool>,
}