Skip to content

Latest commit

 

History

History
185 lines (151 loc) · 11.7 KB

README.md

File metadata and controls

185 lines (151 loc) · 11.7 KB

tomatillo

A pomodoro app with good features

usage

add         Add a new task
    --name
    --estimate
update      Update the actual pomodoros of a task
    --id
done        Mark a task as done
    --id
edit        Edit the estimate of a task
report      Generate a report
    --type blockmonth
    --type yearly
    --type blockweek
delete      Delete a task
    --id 
load        Load tasks from a file
    --file
simple      Generate a simple report of todays work
version     Print the version of the application

Add a task

tomatillo add --name "Prepare the widget" --estimate 2

tomatillo add -n "Add another task" -e 4

This uses the tomatillo binary, a sqlite database and a timer app. Install the timer app with

brew install caarlos0/tap/timer

which is a simple and reliable timer

Add this to your zshrc

work() {
  # usage: work 10m 42, work 10m on task 42. Default is 25m

  duration="${1:-25m}"
  task_id="$2"

  timer "$duration" && echo -e "\a"
  # Update the tomatillo task if a task id is provided
  if [ -n "$task_id" ]; then
    go run . update --id="$task_id"
  fi
}

rest() {
  # usage: rest 10m, rest 60s etc. Default is 5m
  timer "${1:-5m}" && echo -e "\a"
}

And run a command such as:

work 25m 192

And it will update your current task.

Which means work for 25 minutes on task number 192

local testing

Testing the build pipeline by running act to simulate the Github Actions workflow

act -j test

Building

Build the binary and move it to a location in your path

go build -o tomatillo

mv ./tomatillo ~/go/bin/

Weekly

tomatillo report --type blockweek
╔══════════════════════════════════════════╗
║ Weekly Report (2024-09-22 to 2024-09-28) ║
╠══════════════════════════════════════════╩═════════════════════════════════════════╗
║            00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23 ║
╠════════════════════════════════════════════════════════════════════════════════════╣
║ 2024-09-22 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ▓· ║
║ 2024-09-23 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ·· ·· ·· ·▓ ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-24 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-25 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ▓· ·· ▓▓ ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-26 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-27 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-28 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
╚════════════════════════════════════════════════════════════════════════════════════╝

Monthly

tomatillo report --type blockmonth
╔═══════════════════════════════════════════╗ 
║ Monthly Report (2024-09-01 to 2024-09-30) ║ 
╠═══════════════════════════════════════════╩════════════════════════════════════════╗ 
║            00|01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23 ║ 
╠════════════════════════════════════════════════════════════════════════════════════╣ 
║ 2024-09-01 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-02 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-03 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-04 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-05 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-06 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-07 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-08 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-09 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-10 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-11 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-12 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-13 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-14 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-15 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-16 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-17 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-18 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-19 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-20 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-21 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ▓▓ ▓· ·· ·· ·· ·· ·· ·· ·· ▓▓ ·· ║
║ 2024-09-22 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ▓· ║
║ 2024-09-23 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ·· ·· ·· ·▓ ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-24 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·▓ ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-25 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ▓· ·· ▓▓ ▓· ▓▓ ·· ▓▓ ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-26 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-27 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-28 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-29 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ 2024-09-30 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
╚════════════════════════════════════════════════════════════════════════════════════╝ 

Yearly

tomatillo report --type yearly
╔═══════════════════════════════════════════╗ 
║ Yearly Report (2024-01-01 to 2024-12-31)  ║  
╠═══════════════════════════════════════════╩═══════════════════════════════════════════════════════╗ 
║      01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ║ 
║ Jan  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Feb  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ··       ║
║ Mar  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Apr  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ··    ║
║ May  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Jun  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ··    ║
║ Jul  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Aug  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Sep  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ··  9  2  2  1  8 ·· ·· ·· ·· ··    ║
║ Oct  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
║ Nov  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ··    ║
║ Dec  ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝