mirror of
https://github.com/YGGverse/btracker-gemini.git
synced 2026-03-31 17:15:30 +00:00
50 lines
1.3 KiB
Rust
50 lines
1.3 KiB
Rust
use clap::Parser;
|
|
use std::{
|
|
net::{Ipv4Addr, SocketAddr, SocketAddrV4},
|
|
path::PathBuf,
|
|
};
|
|
use url::Url;
|
|
|
|
#[derive(Parser, Debug)]
|
|
#[command(version, about, long_about = None)]
|
|
pub struct Config {
|
|
/// Server name
|
|
#[arg(short, long, default_value_t = String::from("βtracker"))]
|
|
pub name: String,
|
|
|
|
/// Server description
|
|
#[arg(short, long)]
|
|
pub description: Option<String>,
|
|
|
|
/// Date format
|
|
#[arg(short, long, default_value_t = String::from("%Y/%m/%d"))]
|
|
pub format_date: String,
|
|
|
|
/// Tracker(s) to join / scrape requests
|
|
#[arg(short, long)]
|
|
pub tracker: Option<Vec<Url>>,
|
|
|
|
/// Bind server `host:port` to listen incoming connections on it
|
|
#[arg(short, long, default_value_t = SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::LOCALHOST, 1965)))]
|
|
pub bind: SocketAddr,
|
|
|
|
/// Filepath to server identity in PKCS (PFX) format
|
|
#[arg(short, long)]
|
|
pub identity: PathBuf,
|
|
|
|
/// Passphrase to unlock encrypted identity
|
|
#[arg(short, long, default_value_t = String::new())]
|
|
pub password: String,
|
|
|
|
/// btracker-fs directory
|
|
#[arg(short, long)]
|
|
pub storage: PathBuf,
|
|
|
|
/// Listing items limit
|
|
#[arg(short, long, default_value_t = 10)]
|
|
pub limit: usize,
|
|
|
|
/// Default index capacity
|
|
#[arg(short, long, default_value_t = 1000)]
|
|
pub capacity: usize,
|
|
}
|