Support closing forgotton tasks
authorJoey Schulze <joey@infodrom.org>
Tue, 12 Aug 2008 16:54:29 +0000 (16:54 +0000)
committerJoey Schulze <joey@infodrom.org>
Tue, 12 Aug 2008 16:54:29 +0000 (16:54 +0000)
src/InfoCon/stempel/stempel

index 48bb3a1..97903a6 100755 (executable)
@@ -199,22 +199,43 @@ sub toggle_task
     }
 }
 
+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;
+}