Skip to content

zornfeuer/td

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

td

CLI-приложение для управления задачами (todo list) с поддержкой сессий. Позволяет создавать, редактировать, отмечать как выполненные/невыполненные и удалять задачи, а также переключаться между разными сессиями задач.

Особенности

  • Поддержка нескольких сессий задач (например, "работа", "личные", "домашние").
  • Сохранение задач в формате TOML в локальном каталоге данных.
  • Простой CLI с алиасами команд.
  • Локализация пути: использует каталог данных пользователя (via dirs crate).

Установка

Требования

  • Rust (рекомендуется версия 1.70+)
  • Cargo (пакетный менеджер Rust)

Сборка

  1. Клонируйте репозиторий:

    git clone https://github.com/zornfeuer/td
    cd https://github.com/zornfeuer/td
    
  2. Соберите релизную версию:

    cargo build --release
    

Бинарный файл будет находиться в target/release/td.

Другие способы

  • Если у вас установлен Rust toolchain, проект можно запустить напрямую:
    cargo run -- <command>
    

Использование

После сборки запускайте приложение с помощью:

./target/release/td [COMMANDS] [ARGS...]

Основные команды

  • session <name> (алиас: s) - Переключиться на сессию <name> (создаёт её, если не существует).
  • add "text" (алиас: a) - Добавить новую задачу с текстом "text".
  • edit <index> "new text" (алиас: e) - Редактировать задачу с номером <index> (индексы начинаются с 1).
  • done <index> (алиас: d) - Отметить задачу <index> как выполненную.
  • undone <index> (алиас: u) - Отметить задачу <index> как невыполненную.
  • rm <index> (алиас: r) - Удалить задачу <index>.
  • ls (алиас: l) - Показать список задач в текущей сессии (это команда по умолчанию, если не указать аргументы).

Примеры

  1. Установить текущую сессию "работа":

    td session работа
    
  2. Добавить задачу в текущей сессии:

    td add "Завершить отчёт"
    
  3. Показать все задачи (текущей сессии по умолчанию):

    td
    

    Вывод:

    Session: default
    1 [ ] Завершить отчёт
    
  4. Отметить задачу как выполненную:

    td done 1
    

    Затем повторный список покажет:

    Session: default
    1 [✓] Завершить отчёт
    

Хранение данных

  • Задачи сохраняются в файле tasks.toml внутри каталога сессии.
  • Каталог сессий: <data_local_dir>/td/<session_name> (например, ~/.local/share/td/default/ на Linux).
  • Текущая сессия сохраняется в <data_local_dir>/td/current_session.

Если каталог данных не найден, используется текущая директория (.).

Зависимости

  • clap (для CLI)
  • serde и serde_derive (для сериализации)
  • toml (для работы с TOML)
  • dirs (для получения системных каталогов)

Зависимости указаны в Cargo.toml (не предоставлен в коде, но должен быть в корне проекта).

Структура проекта

  • main.rs - Точка входа, парсинг CLI и выполнение команд.
  • lib.rs - Определение модулей.
  • cli.rs - Определение структуры CLI с clap.
  • session.rs - Логика управления сессиями (создание, переключение, пути).
  • tasks.rs - Структура задач и списка задач с методами.

Лицензия

[MIT]

Авторы

[zornfeuer]

Сообщить о проблеме

Если нашли баг или хотите предложить функционал, откройте issue в репозитории.

Приятного использования! 📋

About

Yet another ToDo program written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages