#task #task-list #command-line #terminal #clli

app list-rs

一个简单的命令行待办事项应用

2个版本

0.1.1 2023年8月3日
0.1.0 2023年8月3日

#12#task-list

GPL-3.0-or-later

36KB
858

list-rs

使用Rust编写的简单clli待办事项应用。

$ list-rs    

Welcome to list-rs, a cli todo app written in Rust 🦀!
Task list is empty. 
Run list-rs add to add a new task. 
Run list-rs --help to get all commands

示例用法

添加任务

$ list-rs add "Watch Oppenheimer"
Task Added

按ID删除任务

$ list-rs remove 3
Task 3 removed

按ID更新任务

$ list-rs update 3 "A new title"
Task 3 updated

将任务设置为已完成

$ list-rs done 4
Task 4 set to Done

将任务设置为未完成

$ list-rs undone 4
Task 4 set to Undone

将任务设置为存档

$ list-rs archive 4
Task 4 set to Archived

列出所有待办(未完成)任务

$ list-rs                    

4)  Take vitamins
3)  Meditate
2)  Go to the gym
1)  Watch Oppenheimer

列出所有任务

$ list-rs all      

4) 📦 Take vitamins
3)  Meditate
2)  Go to the gym
1)  Watch Oppenheimer

显示存档任务

$ list-rs archived

4) 📦 Take vitamins

通过内容搜索任务

$ list-rs search "Hello"   

6)  Hello World
5)  Hello

功能需求

  • CRUD操作:添加、删除、更新和列出所有任务。
  • 自动按创建日期排序
  • 可以选择将任务标记为“已完成”、“未完成”和“存档”。
  • 使用数据库在磁盘上持久化任务列表
  • 无限历史记录的撤销/重做操作
  • 根据内容搜索任务
  • 可配置数据库路径

未来工作

  • 实现任务到期日期
  • 实现任务标签
  • 交互式模式

构建

cargo b --release

运行测试

cargo t --release

命令行参数

$ list-rs --help
Usage: list-rs [COMMAND]

Commands:
  add       Adds a task
  remove    Removes a task with a given id
  update    Updates a task with a given id
  list      Lists all pending tasks
  all       List all tasks
  archived  List archived tasks
  archive   Sets a task with a given id to Archived
  done      Sets a task with a given id to Done
  undone    Sets a task with a given id to Undone
  search    Search for a task by its contents
  undo      Revert last change
  redo      Redo last change
  help      Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version

设置自定义数据库路径

创建一个.env文件并添加以下行

DB_PATH=/your/custom/path/tasks.db

使用的包

  • rusqlite(数据库)
  • clap(参数解析)
  • colored(终端美化打印)
  • chrono(日期时间相关)
  • dotenv(用于配置)

依赖项

~24–33MB
~536K SLoC