diff --git a/README.md b/README.md index bcf026b..50776aa 100644 --- a/README.md +++ b/README.md @@ -14,71 +14,159 @@ Zeit erfassen. A command line tool for tracking time spent on tasks & projects. ![zeit](documentation/header.jpg) + ## Build ```sh make ``` +**Info**: This will build using the version 0.0.0. You can prefix the `make` +command with `VERSION=x.y.z` and set `x`, `y` and `z` accordingly if you want +the version in `zeit --help` to be a different one. + + ## Usage Please make sure to `export ZEIT_DB=~/.config/zeit.db` (or whatever location you would like to have the zeit database at). +*zeit*'s data structure contains of the following key entities: `project`, +`task` and `entry`. An `entry` consists of a `project` and a `task`. These +don't have to pre-exist and can be created on-the-fly inside a new `entry` using +e.g. `zeit track --project "New Project" --task "New Task"`. In order to +configure them, the `zeit project` and the `zeit task` commands can be utilised. + + +### Projects + +A project can be configured using `zeit project`: + +```sh +zeit project --help +``` + +#### Examples: + +Set the project color to a hex color code, allowing `zeit stats` to display +information in that color (if your terminal supports colours): + +```sh +zeit project --color '#d3d3d3' "cool project" +``` + + +### Task + +A task can be configured using `zeit task`: + +```sh +zeit task --help +``` + +#### Examples: + +Setting up a Git repository to have commit messages automatically imported +into the activity notes when an activity is finished: + +```sh +zeit task --git ~/my/git/repository "development" +``` + +**Info:** You will have to have the `git` binary available in your `PATH` for +this to work. *zeit* automatically limits the commit log to the exact time of +the activity's beginning- and finish-time. Commit messages before or after these +times won't be imported. + + ### Track activity ```sh zeit track --help ``` -Example: +#### Examples: + +Begin tracking a new activity and reset the start time to 15 minutes ago: ```sh zeit track --project project --task task --begin -0:15 ``` + ### Show current activity ```sh zeit tracking ``` + ### Finish tracking activity ```sh zeit finish --help ``` -Example: +#### Examples: + +Finish tracking the currently tracked activity without adding any further info: ```sh zeit finish ``` +Finish tracking the currently tracked activity and change its task: + +```sh +zeit finish --task other-task +``` + +Finish tracking the currently tracked activity and adjust its start time to +4 PM: + +```sh +zeit finish --begin 16:00 +``` + + ### List tracked activity ```sh zeit list ``` + ### Erase tracked activity ```sh zeit erase --help ``` -Example +#### Examples: + +Erase a tracked activity by its internal ID: ```sh zeit erase 14037730-5c2d-44ff-b70e-81f1dcd4eb5f ``` + +### Display statistics + +![zeit stats](documentation/zeit_stats.png) + +```sh +zeit stats +``` + ### Import tracked activities ```sh zeit import --help ``` +The following formats are supported as of right now: + #### Tyme 3 JSON It's possible to import JSON exports from [Tyme 3](https://www.tyme-app.com). @@ -99,7 +187,9 @@ allows it to identify every imported activity. This way *zeit* won't import the exact same entry twice. Keep this in mind if you change entries in Tyme and then import them again into *zeit*. -Example: +#### Examples: + +Import a Tyme 3 JSON export: ```sh zeit import --tyme ./tyme.export.json diff --git a/documentation/zeit_stats.png b/documentation/zeit_stats.png new file mode 100644 index 0000000..ee405fd Binary files /dev/null and b/documentation/zeit_stats.png differ