use std::{fs, path::PathBuf};
const APP_NAME: &str = "things3";
const LEGACY_APP_NAME: &str = "things-cli";
fn xdg_state_home() -> PathBuf {
if let Ok(custom) = std::env::var("XDG_STATE_HOME") {
return PathBuf::from(custom);
}
dirs::home_dir()
.unwrap_or_else(|| PathBuf::from("."))
.join(".local")
.join("state")
}
pub fn app_state_dir() -> PathBuf {
let state_home = xdg_state_home();
let target = state_home.join(APP_NAME);
let legacy = state_home.join(LEGACY_APP_NAME);
if target.exists() || !legacy.exists() {
return target;
}
if fs::rename(&legacy, &target).is_ok() {
return target;
}
target
}
pub fn append_log_dir() -> PathBuf {
app_state_dir().join("append-log")
}
pub fn auth_file_path() -> PathBuf {
app_state_dir().join("auth.json")
}