aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/main.rs b/src/main.rs
index 74917a9..65d52df 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,9 +1,7 @@
-use clap::Parser;
use hyper::service::{make_service_fn, service_fn};
use hyper::Server;
use sqlx::sqlite::SqlitePool;
use std::convert::Infallible;
-use std::net::SocketAddr;
#[macro_use]
extern crate log;
@@ -22,20 +20,7 @@ mod templates;
mod utils;
mod validation;
-use model::config::Config;
-
-#[derive(Parser)]
-#[clap()]
-struct Args {
- #[clap(short, long, default_value = "0.0.0.0:3000")]
- address: SocketAddr,
-
- #[clap(short, long, default_value = "config.json")]
- config: String,
-
- #[clap(short, long, default_value = "database.db")]
- database: String,
-}
+use model::config;
#[tokio::main]
async fn main() {
@@ -44,13 +29,10 @@ async fn main() {
)
.init();
- let args = Args::parse();
-
- let config_str = std::fs::read_to_string(&args.config)
- .unwrap_or_else(|_| panic!("{}", format!("Missing {}", args.config)));
- let config: Config = serde_json::from_str(&config_str).unwrap();
+ let config = config::from_env()
+ .unwrap_or_else(|err| panic!("Error reading config: {err}"));
- let pool = SqlitePool::connect(&format!("sqlite:{}", args.database))
+ let pool = SqlitePool::connect(&format!("sqlite:{}", config.db_path))
.await
.unwrap();
@@ -78,8 +60,8 @@ async fn main() {
}
});
- info!("Starting server at {}", args.address);
- if let Err(e) = Server::bind(&args.address).serve(make_svc).await {
+ info!("Starting server at {}", config.socket_address);
+ if let Err(e) = Server::bind(&config.socket_address).serve(make_svc).await {
error!("server error: {}", e);
}
}