chloe_todo_tui 0.1.0

A terminal-based todo application with TUI
Documentation
pub mod models;
pub mod repository;

pub use repository::{NewTodoDraft, Priority, TodoRepository};

use std::path::PathBuf;

use dirs_next::data_dir;
use tokio::fs;

/// Returns ~/.local/share/<appname>/db.sqlite (XDG_DATA_HOME)
pub async fn get_xdg_sqlite_path(appname: &str) -> anyhow::Result<PathBuf> {
    // Gets the user's XDG data directory (Linux: ~/.local/share)
    let mut base = data_dir().ok_or_else(|| anyhow::anyhow!("Failed to resolve data directory"))?;

    // ~/.local/share/<appname>
    base.push(appname);

    // Ensure directory exists
    fs::create_dir_all(&base).await?;

    // ~/.local/share/<appname>/db.sqlite
    base.push("todo_tui.sqlite");

    Ok(base)
}