]> git.donarmstrong.com Git - bin.git/commitdiff
update make invoice to handle org mode timestamps
authorDon Armstrong <don@donarmstrong.com>
Wed, 13 Mar 2013 00:13:55 +0000 (17:13 -0700)
committerDon Armstrong <don@donarmstrong.com>
Wed, 13 Mar 2013 00:13:55 +0000 (17:13 -0700)
make_invoice

index 6c7e4a1da725d25fc265e2f9a214e9b1920a682e..5f87df414c6758c2dbdaae96a216eba74f718814 100755 (executable)
@@ -186,11 +186,18 @@ while (<$log_fh>) {
               $date = undef;
               $time = undef;
          }
-         s/\s*\[[\.\d]+\]\s*\[[\.\d]+\]\s*$//;
-         my $string = $_;
-         my ($d1,$d2) = map {s/^\s*\*\s*//;
-                            UnixDate(ParseDate($_),'%s')
-                       } split /\s*-\s*/;
+          s/\s*\[[\.\d]+\]\s*\[[\.\d]+\]\s*$//;
+         my ($d1,$d2);
+          if (/\s*\*\s*CLOCK:\s+\[([^\]]+)\]--\[([^\]]+)\]/) {
+              $d1 = UnixDate(ParseDate($1),'%s');
+              $d2 = UnixDate(ParseDate($2),'%s');
+          } else {
+              ($d1,$d2) = map {s/^\s*\*\s*//;
+                               UnixDate(ParseDate($_),'%s')
+                           } split /\s*-\s*/;
+          }
+          my $string = '* '.strftime('%A, %B %e, %H:%M:%S',localtime($d1)).' - '.
+              strftime('%A, %B %e, %H:%M:%S',localtime($d2));
          if (not defined $first_date) {
               $first_date = $d1;
          }
@@ -207,7 +214,7 @@ while (<$log_fh>) {
          }
          $time = $hours;
          $totaldelta += $delta;
-         $calc_log .= qq($string [).sprintf('%.2f',$hours).qq(] [).sprintf('%.2f',$totaldelta/(60*60)).qq(]\n);
+         $calc_log .= $string.q( [).sprintf('%.2f',$hours).qq(] [).sprintf('%.2f',$totaldelta/(60*60)).qq(]\n);
      }
      elsif (/^\s+-\s*(.+)/) {
          my $event = $1;