}
}
+sub late_close_task
+{
+ my $delta = shift;
+ my ($d_sec,$d_min,$d_hour,$d_mday,$d_mon,$d_year,$d_wday,$d_isdst) = localtime();
+
+ return unless is_open;
+
+ print $delta,$/;
+ my $query = sprintf("UPDATE stempel SET stop=start + interval '%d minutes',time=%d WHERE stop IS NULL",
+ $delta, quarter($delta));
+ $dbh->do($query);
+}
+
sub help
{
print <<"END";
-stempel Copyright (c) 2007,8 Martin Schulze <joey@infodrom.org>
+stempel Copyright (c) 2007,8 Martin Schulze <joey\@infodrom.org>
--list list all
--open list open
+ --close time close open task
--help this text
-d terminate task
- exit
+END
+ exit;
}
+my $opt_close = undef;
my %options = ('list' => \&list_all,
'open' => \&list_open,
'help' => \&help,
+ 'close=i' => \$opt_close,
'terminate|end|d' => \&close_task,
);
GetOptions %options;
-toggle_task;
+if ($opt_close) {
+ late_close_task $opt_close;
+} else {
+ toggle_task;
+}