creddy/src-tauri/src/config.rs

44 lines
868 B
Rust
Raw Normal View History

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 {
let listen_port = if cfg!(debug_assertions) {
12_345
}
else {
19_923
};
AppConfig {
db_path: get_or_create_db_path(),
listen_addr: Ipv4Addr::LOCALHOST,
listen_port,
}
}
}
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("."));
parent.push("creddy.db");
parent
}