A pomodoro app with good features
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
Testing the build pipeline by running act
to simulate the Github Actions workflow
act -j test
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 ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ·· ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════╝