onde-cli 0.2.1

Terminal UI for signing up, signing in, and managing your Onde Inference account.
use std::{fs, path::PathBuf};

fn path() -> Option<PathBuf> {
    dirs::config_dir().map(|p| p.join("onde").join("token"))
}

pub fn load() -> Option<String> {
    let content = fs::read_to_string(path()?).ok()?;
    let trimmed = content.trim().to_string();
    if trimmed.is_empty() {
        None
    } else {
        Some(trimmed)
    }
}

pub fn save(token: &str) -> std::io::Result<()> {
    let path = path()
        .ok_or_else(|| std::io::Error::new(std::io::ErrorKind::NotFound, "no config directory"))?;
    if let Some(parent) = path.parent() {
        fs::create_dir_all(parent)?;
    }
    fs::write(path, token)
}

pub fn clear() {
    if let Some(path) = path() {
        let _ = fs::remove_file(path);
    }
}