=begin html

<p>
    <a href="https://travis-ci.org/soren/App-TimeClock"><img
        src="https://img.shields.io/travis/soren/App-TimeClock.svg"/></a>

    <a href="https://ci.appveyor.com/project/soren/app-timeclock"><img
        src="https://ci.appveyor.com/api/projects/status/n29a40nu3tc9939q?svg=true"/></a>

    <a href="https://coveralls.io/r/soren/App-TimeClock?branch=master"><img
        src="https://img.shields.io/coveralls/soren/App-TimeClock.svg"/></a>

    <a href="https://bettercodehub.com/results/soren/App-TimeClock"><img
        src='https://bettercodehub.com/edge/badge/soren/App-TimeClock?branch=master'></a>

    <a href="https://readthedocs.org/projects/apptimeclock/?badge=latest"><img
        src="https://readthedocs.org/projects/apptimeclock/badge/?version=latest"/></a>

    <a href="https://metacpan.org/release/App-TimeClock"><img
        src="https://img.shields.io/cpan/v/App-TimeClock.png"/></a>

    <a href="https://www.gnu.org/licenses/gpl.html"><img
        src="https://img.shields.io/github/license/soren/App-TimeClock.png"/></a>

    <a href="http://waffle.io/soren/App-TimeClock"><img
        src="https://badge.waffle.io/soren/App-TimeClock.png?label=ready&title=Ready"/></a>
</p>

=end html

=head1 NAME

timeclock.pl - a timeclock reporting utility

=head1 SYNOPSIS

timeclock.pl [--html|--csv] [file]

timeclock.pl [--help|--man|--version]

Some examples:

    # Console output
    $ timeclock.pl timelog.bak

    # HTML output
    $ timeclock.pl --html > report.html

    # CSV output
    $ timeclock.pl --csv > report.csv

=head1 ARGUMENTS

If you run B<timeclock.pl> without any arguments, it will read a timelog file
from one of the default locations (either ~/.emacs.d/timelog or ~/.timelog) and
print an ASCII formatted daily report to the console.

If your timelog file is located somewhere else, B<timeclock.pl> can be called
with the name of a timelog file to read.

Whether you specify a file or not, you can change the default output format by
adding on of the following arguments:

=over 4

=item C<--html>

Switches to HTML formatted output.

=item C<--csv>

Switches to CSV formatted output.

=back

B<timeclock.pl> can also print version an usage information. This is done by
specifying exactly one argument that should be one of the following:

=over 4

=item C<--help>

Print short usages information and exits.

=item C<--man>

Displays the manual and exits.

=item C<--version>

Displays the version number and copyright information and exits.

=back

=head1 DESCRIPTION

This is a simple reporting utility for timeclock, which is a time
tracking package for GNU Emacs.

You will use timeclock from GNU Emacs to I<check in> and I<check out>
of projects during your workday.

Then at the end of the week you can run L<timeclock.pl> to get a daily
report of your work time.

=head1 CONFIGURATION

If you haven't changed your Emacs/TimeClock setup, no configuration is
needed. The script will read your timelog file from the default
location which is either ~/.emacs.d/timlog or  ~/.timelog depending on
your Emacs version.

If you have changed the location of the timelog file (I've placed mine
in a MEGA folder), you can create the file ~/.timeclockrc and
define the location of the timelog file there. Example:

 $timelog = "$ENV{HOME}/MEGA/timelog";

=head2 Emacs Integration

You can add the following to you .emacs file to integrate
L<timeclock.pl> into Emacs:

 (defun timeclock-show-daily-report()
   "Creates and displays a daily report of tim<eclock entries."
   (interactive)
   (let ((process-connection-type nil)   ; Use a pipe.
         (command-name "timeclock")
         (buffer-name "*timeclock daily report*")
         (script-name "timeclock.pl"))
     (when (get-buffer buffer-name)
       (progn
         (set-buffer buffer-name)
         (set-buffer-modified-p nil)
         (erase-buffer)))
     (set-buffer (get-buffer-create buffer-name))
     (start-process command-name buffer-name "perl" "-S" script-name)
     (switch-to-buffer buffer-name)))

And then use C<M-x timeclock-show-daily-report RET> to display the
report.

=for text
=encoding utf-8
=end

=head1 AUTHOR

Søren Lund, L<https://github.com/soren/>

=head1 SEE ALSO

L<App::TimeClock::ConsolePrinter>,
L<App::TimeClock::HtmlPrinter>,
L<App::TimeClock::CsvPrinter>,
L<App::TimeClock::PrinterInterface>

L<http://www.gnu.org/software/emacs/>,
L<http://www.emacswiki.org/emacs/TimeClock>

=head1 BUGS

Please report any bugs at
L<https://github.com/soren/App-TimeClock/issues>.  I will be notified,
and then you'll automatically be notified of progress on your bug as I
make changes.

=head1 COPYRIGHT

Copyright (C) 2012-2018 Søren Lund

This file is part of App::TimeClock.

App::TimeClock is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

App::TimeClock 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 General Public License for more details.

You should have received a copy of the GNU General Public License
along with App::TimeClock.  If not, see <http://www.gnu.org/licenses/>.
