use std::path::PathBuf;
pub struct Paths {
pub state_dir: PathBuf,
pub socket: PathBuf,
pub db: PathBuf,
pub pidfile: PathBuf,
pub log: PathBuf,
}
pub fn resolve(state_dir: Option<PathBuf>) -> Paths {
let dir = state_dir.unwrap_or_else(default_state_dir);
Paths {
socket: dir.join("pktscope.sock"),
db: dir.join("pktscope.db"),
pidfile: dir.join("pktscope.pid"),
log: dir.join("monitor.log"),
state_dir: dir,
}
}
fn default_state_dir() -> PathBuf {
dirs::data_local_dir()
.map(|d| d.join("pktscope"))
.unwrap_or_else(|| PathBuf::from("/tmp/pktscope"))
}