2022-12-21 21:42:12 +00:00
|
|
|
use std::net::Ipv4Addr;
|
|
|
|
use std::path::PathBuf;
|
|
|
|
|
|
|
|
|
|
|
|
pub struct AppConfig {
|
|
|
|
pub db_path: PathBuf,
|
|
|
|
pub listen_addr: Ipv4Addr,
|
|
|
|
pub listen_port: u16,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for AppConfig {
|
|
|
|
fn default() -> Self {
|
2022-12-22 00:22:24 +00:00
|
|
|
let listen_port = if cfg!(debug_assertions) {
|
|
|
|
12_345
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
19_923
|
|
|
|
};
|
|
|
|
|
2022-12-21 21:42:12 +00:00
|
|
|
AppConfig {
|
|
|
|
db_path: get_or_create_db_path(),
|
|
|
|
listen_addr: Ipv4Addr::LOCALHOST,
|
2022-12-22 00:22:24 +00:00
|
|
|
listen_port,
|
2022-12-21 21:42:12 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
fn get_or_create_db_path() -> PathBuf {
|
|
|
|
if cfg!(debug_assertions) {
|
|
|
|
return PathBuf::from("./creddy.db");
|
|
|
|
}
|
|
|
|
|
|
|
|
let mut parent = std::env::var("HOME")
|
|
|
|
.map(|h| {
|
|
|
|
let mut p = PathBuf::from(h);
|
|
|
|
p.push(".config");
|
|
|
|
p
|
|
|
|
})
|
|
|
|
.unwrap_or(PathBuf::from("."));
|
|
|
|
|
2022-12-22 00:22:24 +00:00
|
|
|
parent.push("creddy.db");
|
2022-12-21 21:42:12 +00:00
|
|
|
parent
|
|
|
|
}
|