]> git.donarmstrong.com Git - bin.git/blobdiff - make_invoice
add reset usb bus command
[bin.git] / make_invoice
index 6c7e4a1da725d25fc265e2f9a214e9b1920a682e..0047d45079b0544e92a4c1121489629ad1c55a02 100755 (executable)
@@ -176,6 +176,7 @@ while (<$log_fh>) {
      chomp;
      next if /^Total: \d+\.\d{2}$/;
      if (/^\s*\* /) {
+         print STDERR $_."\n";
          if (defined $time) {
               $tex_log .= format_events(date => $date,
                                         date2 => $date2,
@@ -186,11 +187,24 @@ 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+\[([^\]]+)\]--\[([^\]]+)\]/ or
+             /^\s*\*\s*(.+)?\s* - \s*(.+)?\s*$/
+            ) {
+              $d1 = UnixDate(ParseDate($1),'%s');
+              $d2 = UnixDate(ParseDate($2),'%s');
+              if (not defined $d1) {
+                  die "Invalid date: $1";
+              }
+              if (not defined $d2) {
+                  die "Invalid date: $2";
+              }
+          } else {
+              die "malformed line $_";
+          }
+          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 +221,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;