3 个版本 (重大变更)

0.4.1 2020年5月31日
0.3.0 2020年5月30日
0.2.0 2020年3月15日

#54 in #时间跟踪

MIT/Apache

205KB
884

👊 punch

一个用 Rust 编写的简单时间跟踪 CLI 工具。打卡,下班,并以不同的时间粒度将记录打印到终端。

使用方法

in, out, show - 这就是你需要的一切

  • punch in [<note>]: 开始跟踪时间,并传递可选的备注。
  • punch out [<note>]: 停止跟踪时间,并传递可选的备注。
  • punch show [day|week|month|year] [--precise] [--round DIRECTION,GRANULARITY]: 将跟踪的时间按指定的时间间隔分组打印到控制台。 (默认:week).
    • --precise/-p: 以 RFC 3339 格式打印时间戳。
    • --timezone/-t: 打印带时区的时间戳。
    • --round/-r DIRECTION,GRANULARITY: 根据给定的舍入方向和精度进行舍入。示例:nearest,1min (默认), up,30min, down,1h, n,1day.
  • punch edit: 在您喜欢的编辑器中打开打卡卡以进行手动更改。
  • punch status: 打印打卡卡的机器可读状态: PunchedIn, PunchedOut, 或 Corrupted.

每次 punch in 都必须紧跟一个 punch out。如果你没有 punch out 上一次记录,就不能 punch in。工具会对每次打卡进行一些验证,并报告无效状态。

如果你不小心打卡了,你可以在任何时候手动编辑 ~/.punch/main.csv 中的打卡卡片。每个记录都是 CSV 编码的,格式为 index,start,[end],[note],其中 [] 表示可选字段。

示例

基于一些测试数据运行 punch show day

terminal output

未来改进

  • 支持多个打卡卡片,并允许在它们之间切换。例如,使用 punch listpunch switch
  • 测试
  • 使用 punch show --stats 切换显示统计数据
  • 操作系统集成将会很棒:在关机/启动/休眠/打开终端/Slack 时执行。
  • punch show 上打印表格?

依赖关系

~6–16MB
~178K SLoC