aboutsummaryrefslogtreecommitdiffstats
path: root/zoned/src/main.rs
blob: 5ca28622ebc92de713422a6b136b5cb02359c63e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use figment::{
    providers::{Env, Format, Serialized, Toml},
    Figment,
};
use zoned::{api, Config};

#[rocket::main]
async fn main() {
    let config: Config = Figment::from(Serialized::defaults(Config::default()))
        .merge(Toml::file(Env::var_or("ZONED_CONFIG", "/etc/zoned/Config.toml")).nested())
        .merge(Env::prefixed("ZONED_"))
        .extract()
        .expect("Failed to parse config");

    match api::build_rocket(config).launch().await {
        Ok(()) => println!("Rocket shut down gracefully."),
        Err(err) => eprintln!("Rocket had an error: {}", err),
    };
}