parametrize port, address and store path
This commit is contained in:
parent
5a021f9781
commit
a07c61fdbf
2 changed files with 30 additions and 9 deletions
27
src/main.rs
27
src/main.rs
|
@ -1,5 +1,6 @@
|
|||
use std::{
|
||||
fmt::Write,
|
||||
path::PathBuf,
|
||||
sync::{Arc, RwLock},
|
||||
};
|
||||
|
||||
|
@ -22,6 +23,22 @@ use validator::{Validate, ValidationError};
|
|||
mod common;
|
||||
mod store;
|
||||
|
||||
#[derive(Debug, clap::Parser)]
|
||||
/// Arbre
|
||||
struct Cmd {
|
||||
#[arg(short, long, default_value_t = 8200)]
|
||||
/// Port on which th server will listen.
|
||||
port: u16,
|
||||
|
||||
#[arg(short, long, default_value = "0.0.0.0")]
|
||||
/// Hostname or address on which th server will listen.
|
||||
address: String,
|
||||
|
||||
#[arg(short, long, default_value = "./store")]
|
||||
/// Path to the directory to use as storage for topics.
|
||||
store: PathBuf,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
struct MainState {
|
||||
store: Arc<RwLock<Store>>,
|
||||
|
@ -29,7 +46,13 @@ struct MainState {
|
|||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
let store = Store::open("./store")?;
|
||||
let Cmd {
|
||||
address,
|
||||
port,
|
||||
store,
|
||||
} = clap::Parser::parse();
|
||||
|
||||
let store = Store::open(store)?;
|
||||
let store = Arc::new(RwLock::new(store));
|
||||
let state = MainState { store };
|
||||
|
||||
|
@ -42,7 +65,7 @@ async fn main() -> Result<()> {
|
|||
.route("/", get(home))
|
||||
.with_state(state);
|
||||
|
||||
let listener = TcpListener::bind("0.0.0.0:3000").await.unwrap();
|
||||
let listener = TcpListener::bind((address, port)).await.unwrap();
|
||||
let server = axum::serve(listener, app);
|
||||
server.await?;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue