Files
SJNmusic/daemon/src/paths.rs
T

48 lines
957 B
Rust

use std::path::PathBuf;
pub fn base_dir() -> PathBuf {
let mut p = dirs::home_dir().unwrap();
p.push(".sjn/music");
p
}
pub fn songs_dir() -> PathBuf {
let mut p = base_dir();
p.push("songs");
p
}
pub fn song_path(name: &str) -> String {
let safe: String = name
.chars()
.map(|c| {
if c.is_alphanumeric() || c == ' ' {
c
} else {
'_'
}
})
.collect();
let mut p = songs_dir();
p.push(format!("{safe}.mp3"));
p.to_string_lossy().to_string()
}
pub fn db_path() -> String {
let mut p = base_dir();
p.push("songs.db");
p.to_string_lossy().to_string()
}
pub fn config_path() -> String {
let mut p = base_dir();
p.push("config.toml");
p.to_string_lossy().to_string()
}
pub fn ensure_dirs() {
let _ = std::fs::create_dir_all(base_dir());
let _ = std::fs::create_dir_all(songs_dir());
}