|
|
|
|
@ -30,30 +30,7 @@ use rocket::{
@@ -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) {
@@ -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() {
@@ -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)] |
|
|
|
|
|