# Time Tracker
#
-# Copyright (c) 2007,8 Martin Schulze <joey@infodrom.org>
+# Copyright (c) 2007,8,13 Martin Schulze <joey@infodrom.org>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
my $engine = "dbi:Pg:dbname=infocon";
my $dbh = DBI->connect($engine);
-if (!$dbh) {
- print "Access to database denied!\n";
- return 1;
-}
+die "Access to database denied!\n" unless $dbh;
$dbh->do("SET DateStyle = 'ISO'");
sub min2hour
$dbh->do($query);
}
+sub move_task
+{
+ my $minutes = shift;
+
+ return unless is_open;
+
+ my $query = sprintf("UPDATE stempel SET start = start - interval '%d minutes' WHERE stop IS NULL", $minutes);
+ $dbh->do($query);
+}
+
sub alter_task
{
return unless is_open;
print <<"END";
stempel Copyright (c) 2007,8 Martin Schulze <joey\@infodrom.org>
--list [month] list month [default=current|all]
+ --back n move start of current task back by n minutes
--open list open
--close time close open task
--help this text
my $opt_close = undef;
my $opt_list = undef;
+my $opt_back = undef;
my %options = ('list:s' => \$opt_list,
+ 'back=i' => \$opt_back,
'open' => \&list_open,
'help' => \&help,
'close=i' => \$opt_close,
late_close_task $opt_close;
} elsif (defined $opt_list) {
list $opt_list;
+} elsif (defined $opt_back) {
+ move_task $opt_back;
} else {
toggle_task;
}