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