NAME
tracker - run App::TimeTracker
VERSION
version 2.009
SYNOPSIS
~/perl/Some-Project$ tracker start
Started working on Some-Project at 09:03:41
~/perl/Some-Project$ tracker stop
Worked 00:07:42 on Some-Project
DESCRIPTION
tracker
is the front end script to App::TimeTracker. tracker
allows you to easily track and report the time you spend on various jobs, projects, tasks etc from the commandline.
Custom commands or adaptions to your workflow can be implemented via an "interesting" set of Moose-powered plugins. You can configure different sets of plugins for different jobs or projects.
Tipp: Use tracker plugins
to list all installed plugins. Read more about each plugin in App::TimeTracker::Command::PLUGIN-NAME
.
Currently, there are plugins to interact with RT (RequestTracker), git and IRC. For example, the command
tracker start --rt 1234
might (depending on the current configuration)
fetch the ticket subject from RT
create a new git branch named after the ticket subject and check it out
post a notification to your internal IRC channel, informing your colleagues that you're now working on that ticket
tell you're window manager to display the current ticket in your taskbar
and of course: store the time you started working on this ticket
Each time you start
a new task, a so-called tracking file
will be created. This file contains all information regarding the task you're currently working on. If you call stop
, the current time is stored into the tracking file
and the time spend working on this task is calculated (and also stored).
All tracking files
are plain text files containing JSON. It is very easy to synchronize them on different machines, using anything from rsync to version control systems. Or you just can use the SyncViaGit
plugin!
CONFIG FILES
The first time you use tracker
, it will create a directory named .TimeTracker in your home directory (provided by "File::HomeDir). This directory will contain your master config file tracker.json and all tracking files
."
You can override and ammend your default configuration by creating a project specific config file named .tracker.json in your project directory.
Tipp: Use tracker init
to create an empty config file in the current working directory.
All .tracker.json
files found in your current working directory and all its parent are merged into one configuration.
Example:
~/.TimeTracker/tracker.json
~/job/.tracker.json
~/job/project/.tracker.json
If you hit start
in ~/job/project/, all three of those config files will be merged and the resulting hash will be used as the current configuration.
If you hit start
in ~/job/, only ~/job/.tracker.json and ~/.TimeTracker/tracker.json
will be used.
This allows you to have global default settings, different default setting for different jobs, and finetuned settings for each project. Of course you can have as many levels of configs as you want.
Tipp: Use tracker show_config
to dump the current configuration.
TRACKING FILES
A tracking file
contains all information about one interval you worked on one task. The data is provided by App::TimeTracker::Data::Task and stored in JSON via MooseX::Storage.
tracking files
are stored in ~/.TimeTracker in a directory hierarchy consisting of the current year and the current month. This makes it easy (easier..) to find a specific tracking file
in case you need to make some manual corrections (an interface for easier editing of tracking files
is planned).
The filename of a tracking file
looks like 'YYYYMMDD-HHMMSS_$project.trc', for example: 20110811-090437_App_TimeTracker.trc.
There are three special files in ~/.TimeTracker:
current
This file contains the filename of the currently active
tracking file
. If you're not working on anything at the moment, this file does not exist.previous
This file contains the filename of the last active
tracking file
.projects.json
This file contains a JSON hash listing all the projects and their config files that you used. Currently it is not used, but we will need it shortly to make the reports nicer. Using this file, we can find all projects that are time-tracked, without having to traverse your whole filesystem.
AUTHOR
Thomas Klausner <domm@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2011 by Thomas Klausner.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 78:
Unterminated L<...> sequence