mirror of
https://github.com/LukeMathWalker/zero-to-production.git
synced 2024-06-10 17:29:26 +00:00
29 lines
1 KiB
Rust
29 lines
1 KiB
Rust
use sqlx::postgres::PgPoolOptions;
|
|
use std::net::TcpListener;
|
|
use zero2prod::configuration::get_configuration;
|
|
use zero2prod::email_client::EmailClient;
|
|
use zero2prod::startup::run;
|
|
use zero2prod::telemetry::{get_subscriber, init_subscriber};
|
|
|
|
#[actix_rt::main]
|
|
async fn main() -> std::io::Result<()> {
|
|
let subscriber = get_subscriber("zero2prod".into(), "info".into());
|
|
init_subscriber(subscriber);
|
|
|
|
let configuration = get_configuration().expect("Failed to read configuration.");
|
|
let connection_pool = PgPoolOptions::new()
|
|
.connect_timeout(std::time::Duration::from_secs(2))
|
|
.connect_with(configuration.database.with_db())
|
|
.await
|
|
.expect("Failed to connect to Postgres.");
|
|
let email_client = EmailClient::new(configuration.email_client.base_url);
|
|
|
|
let address = format!(
|
|
"{}:{}",
|
|
configuration.application.host, configuration.application.port
|
|
);
|
|
let listener = TcpListener::bind(address)?;
|
|
run(listener, connection_pool, email_client)?.await?;
|
|
Ok(())
|
|
}
|