2 unstable releases
0.2.0 | Oct 25, 2024 |
---|---|
0.1.0 | Aug 1, 2024 |
#459 in Database interfaces
21KB
533 lines
CLK
track projects; run reports
Basics
Projecs
Add a list of projects to track time against
Entries
run clk on <proj>
to log time against a project.
run clk off
to stop logging time.
Only one project may be active at a time.
Reports
Setup
Data is kept in sqlite.
sqlite queries can be kept in ~/.config/clk/reports/<report>.sql
to create a report in csv.
Extensions
This project adds scalar functions to queries
name | description |
---|---|
minutes | Extracts minutes component from total seconds |
hours | Extracts hours component from total seconds |
days | Extracts days component from total seconds |
duration | Creates a minimal string representation "3d 3h 4m 23s" |
Sample
~/.config/sessions/reports/sessions.sql
this report shows the different entries loged, to which project, on what day and how long.
select
name,
date(start, 'unixepoch', 'localtime') as day,
duration(end - start) as duration
from Entries
inner join Projects on Projects.id = Entries.project_id
where
end is not null and
start between unixepoch('now', '-7 days') and unixepoch()
Advanced
clk loads the ~/.config/clk/ext.sql
file each time the program is run.
This allows the user to extend the data with more tables or even insert values (if they don't exist) that may be used in reports.
Dependencies
~54MB
~1M SLoC