]> git.donarmstrong.com Git - bin.git/commitdiff
add latexize invoice and invoice_calc
authorDon Armstrong <don@donarmstrong.com>
Thu, 9 Nov 2006 03:25:47 +0000 (03:25 +0000)
committerDon Armstrong <don@donarmstrong.com>
Thu, 9 Nov 2006 03:25:47 +0000 (03:25 +0000)
invoice_calc [new file with mode: 0755]
latexize_invoice [new file with mode: 0755]

diff --git a/invoice_calc b/invoice_calc
new file mode 100755 (executable)
index 0000000..21e1a18
--- /dev/null
@@ -0,0 +1,23 @@
+#!/usr/bin/perl
+
+use Date::Manip;
+
+$totaldelta=undef;
+
+while (<>) {
+     chomp;
+     if (/^\* /) {
+         my $string = $_; 
+         my ($d1,$d2) = map {s/^\*\s*//;
+                             ParseDate($_)
+                        } split /\s*-\s*/; 
+         my $delta = DateCalc($d1,$d2);
+         $totaldelta = defined($totaldelta)?DateCalc($delta,$totaldelta):$delta;
+         print qq($string [).Delta_Format($delta,2,q(%ht)).qq(] [).Delta_Format($totaldelta,2,q(%ht)).qq(]\n);
+     }
+     else {
+         print $_,qq(\n);
+     }
+}
+
+print "\nTotal: ".Delta_Format($totaldelta,2,q(%ht)).qq(\n);
diff --git a/latexize_invoice b/latexize_invoice
new file mode 100755 (executable)
index 0000000..1418b46
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/perl
+
+#* Saturday, July 22, 2006 19:41:14 PDT - Saturday, July 22, 2006 20:13:23 PDT [0.54] [0.54]
+#  - Set up dns slave/master between alpha and beta
+
+#         \Fee{\begin{itemize*}
+#           \item setting up rsyncd.conf to sync home directories
+#           \item running a test rsync
+#           \item add back missing accounts
+#           \end{itemize*}
+#         }{50.00}{0.94}
+
+
+my $time = undef;
+my @events;
+while (<>){
+     if (/^\s*\*.+\[([^\]]+)\]\s*\[[^\]]+\]/) {
+         if (defined $time) {
+              print format_events($time,@events);
+         }
+         @events = ();
+         $time = $1;
+     }
+     if (/^\s+\-\s*(.+)/) {
+         my $event = $1;
+         chomp $event;
+         push @events, $event;
+     }
+}
+if (defined $time) {
+     print format_events($time,@events);
+}
+
+sub format_events{
+     my ($time,@events) = @_;
+     my $output = '        \Fee{\begin{itemize*}'."\n";
+     $output .= join('',map {"          \\item $_\n"} @events);
+     $output .= '        \end{itemize*}}{50.00}{'.$time.'}'."\n";
+     return $output;
+}