A simple timesheet programm written in Rust with a command line interface. Uses SQLite as the storage backend.
Related tools:
Starts a new timeslice. Only one timeslice is allowed to be running.
punch start my-project
Stops a previously started timeslice:
punch stop
Log all timeslices grouped by day:
punch log
Summarizes timeslices by project and day including a break down by tag:
punch summarize
Import frames generated by watson. Watson uses a simple json format to store data:
punch import ~/.config/watson/frames
- add
status
command - limit output of
log
to 1w by default - add option for
log
to show all recorded slices - limit output of
summarize
to 1w by default - add option for
summarize
to aggregate over all slices - add more grouping modes for
summarize
: week, month, year - add a way to edit existing slices (start/stop/tags)
- follow https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html for default db file
- add colored output
- add n2n relation timeslice <==> tag
- import tags from watson frames
- add start command
- add stop command
- add command / output similar to
watson log
- use clap to define commands
- add import command
Copyright (C) 2020 Philipp Stucki
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.