App-JobLog
view release on metacpan or search on metacpan
lib/App/JobLog/Command/info.pm view on Meta::CPAN
would produce something like
2011 2 1 15 19 12:foo:what I am doing now
2011 2 1 16 19 12:foo:now something else
When you are done with the last task of the day, or your stop to take a break, you type
$executable @{[App::JobLog::Command::done->name]}
which adds something like
2011 2 1 16 19 12:DONE
to the log. Note the single colon. In this case I<DONE> is not a tag. Tags are always sandwiched between
two delimiters. I<DONE> here just marks the line as the end of a task.
When you come back to work you can type
$executable @{[App::JobLog::Command::resume->name]}
to add a new line to the log with the same description and tags as the last task you began.
==head2 Summary Commands
The log is of little use if you cannot extract useful reports of what it contains. For this there are a
variety of commands.
==over 8
==item B<@{[App::JobLog::Command::summary->name]}>
The most extensive and featureful log report command. Example:
\$ job summary yesterday
Monday, 14 March
9:46 - 10:11 am 0.41 widgets modifying name normalization code to use dates
10:17 - 10:55 am 0.62 widgets modifying name normalization code to use dates
1:49 - 2:08 pm 0.32 widgets testing PGA file to see whether Felix Frankfurter is still there
TOTAL HOURS 1.35
widgets 1.35
==item B<@{[App::JobLog::Command::last->name]}>
The last event recorded. Example:
\$ job last
Tuesday, 15 March
5:07 pm - ongoing 0.00 foo muttering
TOTAL HOURS 0.00
foo 0.00
==item B<@{[App::JobLog::Command::today->name]}>
Everything you've done today. Example:
\$ job today
Tuesday, 15 March
11:33 - 11:35 am 0.04 widgets checking up on Lem's issue with pipeline
11:38 - 11:46 am 0.12 widgets checking up on Lem's issue with pipeline; figuring out null pointer in multi-threaded code
12:40 - 1:11 pm 0.52 widgets debugging null pointers
TOTAL HOURS 0.68
widgets 0.68
==back
==head2 Obtaining Further Information
If you wish further information there are severals routes:
==over 8
==item B<$executable>
If you invoke B<Job Log> without any arguments you will receive a list of its commands.
==item B<$executable commands>
Another way to obtain a list of commands.
==item B<--help>
Every command has a C<--help> option which will provide minimal help text and a complete list of the options the command
understands.
==item B<$executable help <command>>
The C<help> command will provide a command's full usage text.
==item B<$executable @{[__PACKAGE__->name]} --man>
This command's C<--man> option provides still more extensive help text.
==item B<perldoc>
The Perl modules of which this application is composed each have their own documentation. For example, try
perldoc App::JobLog
==back
B<TIP:> any unambigous prefix of a command will do. All the following are equivalent:
@{[join "\n", map {" $executable $_ doing something"} $self->_unambiguous_prefixes(App::JobLog::Command::add->name)]}
This means that for almost all commands you need only use the first letter of the command name.
END
}
sub _advanced_usage {
my ( $self, $executable ) = (@_);
return <<END;
==head1 Environment Variables
B<Job Log> is sensitive to a single environment variable:
==head2 @{[DIRECTORY()]}
( run in 0.460 second using v1.01-cache-2.11-cpan-39bf76dae61 )