|
|
|
@ -30,30 +30,7 @@ use rocket::{
|
|
|
|
|
use tracing::span;
|
|
|
|
|
use tracing_subscriber::{prelude::*, Registry};
|
|
|
|
|
|
|
|
|
|
async fn setup_rocket() -> (rocket::Rocket<rocket::Build>, Config) {
|
|
|
|
|
// Force log level off, so we can use our own logger
|
|
|
|
|
//std::env::set_var("CONDUIT_LOG_LEVEL", "off");
|
|
|
|
|
|
|
|
|
|
let config =
|
|
|
|
|
Figment::from(rocket::Config::release_default())
|
|
|
|
|
.merge(
|
|
|
|
|
Toml::file(Env::var("CONDUIT_CONFIG").expect(
|
|
|
|
|
"The CONDUIT_CONFIG env var needs to be set. Example: /etc/conduit.toml",
|
|
|
|
|
))
|
|
|
|
|
.nested(),
|
|
|
|
|
)
|
|
|
|
|
.merge(Env::prefixed("CONDUIT_").global());
|
|
|
|
|
|
|
|
|
|
let parsed_config = config
|
|
|
|
|
.extract::<Config>()
|
|
|
|
|
.expect("It looks like your config is invalid. Please take a look at the error");
|
|
|
|
|
|
|
|
|
|
let data = Database::load_or_create(parsed_config.clone())
|
|
|
|
|
.await
|
|
|
|
|
.expect("config is valid");
|
|
|
|
|
|
|
|
|
|
data.sending.start_handler(&data);
|
|
|
|
|
|
|
|
|
|
fn setup_rocket(config: Figment, data: Database) -> rocket::Rocket<rocket::Build> {
|
|
|
|
|
let rocket = rocket::custom(config)
|
|
|
|
|
.manage(data)
|
|
|
|
|
.mount(
|
|
|
|
@ -192,12 +169,33 @@ async fn setup_rocket() -> (rocket::Rocket<rocket::Build>, Config) {
|
|
|
|
|
],
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
(rocket, parsed_config)
|
|
|
|
|
rocket
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[rocket::main]
|
|
|
|
|
async fn main() {
|
|
|
|
|
let (rocket, config) = setup_rocket().await;
|
|
|
|
|
// Force log level off, so we can use our own logger
|
|
|
|
|
std::env::set_var("CONDUIT_LOG_LEVEL", "off");
|
|
|
|
|
|
|
|
|
|
let raw_config =
|
|
|
|
|
Figment::from(rocket::Config::release_default())
|
|
|
|
|
.merge(
|
|
|
|
|
Toml::file(Env::var("CONDUIT_CONFIG").expect(
|
|
|
|
|
"The CONDUIT_CONFIG env var needs to be set. Example: /etc/conduit.toml",
|
|
|
|
|
))
|
|
|
|
|
.nested(),
|
|
|
|
|
)
|
|
|
|
|
.merge(Env::prefixed("CONDUIT_").global());
|
|
|
|
|
|
|
|
|
|
let config = raw_config
|
|
|
|
|
.extract::<Config>()
|
|
|
|
|
.expect("It looks like your config is invalid. Please take a look at the error");
|
|
|
|
|
|
|
|
|
|
let db = Database::load_or_create(config.clone())
|
|
|
|
|
.await
|
|
|
|
|
.expect("config is valid");
|
|
|
|
|
|
|
|
|
|
db.sending.start_handler(&db);
|
|
|
|
|
|
|
|
|
|
if config.allow_jaeger {
|
|
|
|
|
let (tracer, _uninstall) = opentelemetry_jaeger::new_pipeline()
|
|
|
|
@ -209,17 +207,13 @@ async fn main() {
|
|
|
|
|
|
|
|
|
|
let root = span!(tracing::Level::INFO, "app_start", work_units = 2);
|
|
|
|
|
let _enter = root.enter();
|
|
|
|
|
|
|
|
|
|
rocket.launch().await.unwrap();
|
|
|
|
|
} else {
|
|
|
|
|
//std::env::set_var("CONDUIT_LOG", config.log);
|
|
|
|
|
//pretty_env_logger::init_custom_env("CONDUIT_LOG");
|
|
|
|
|
|
|
|
|
|
//let root = span!(tracing::Level::INFO, "app_start", work_units = 2);
|
|
|
|
|
//let _enter = root.enter();
|
|
|
|
|
|
|
|
|
|
rocket.launch().await.unwrap();
|
|
|
|
|
std::env::set_var("CONDUIT_LOG", config.log);
|
|
|
|
|
pretty_env_logger::init_custom_env("CONDUIT_LOG");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
let rocket = setup_rocket(raw_config, db);
|
|
|
|
|
rocket.launch().await.unwrap();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[catch(404)]
|
|
|
|
|