]> git.donarmstrong.com Git - wannabuild.git/commitdiff
Unbreak parse_date() for new date format
authorMarc Brockschmidt <he@cimarosa.debian.org>
Mon, 1 Mar 2010 08:33:31 +0000 (08:33 +0000)
committerMarc Brockschmidt <he@cimarosa.debian.org>
Mon, 1 Mar 2010 08:33:31 +0000 (08:33 +0000)
bin/WannaBuild.pm

index 300eb129b94d383d7067589874dda808cfb03cbc..d9433e20058790a73a55a4b07fe80cb16f991dcd 100644 (file)
@@ -181,18 +181,26 @@ sub parse_date {
        my $text = shift;
 
        return 0 if !$text;
-       die "Cannot parse date: $text\n"
-               if $text !~ /^(\d{4}) (\w{3}) (\d+) (\d{2}):(\d{2}):(\d{2})$/;
-       my ($year, $mon, $day, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6);
-       $mon =~ y/A-Z/a-z/;
-       die "Invalid month name $mon" if !exists $monname{$mon};
-       $mon = $monname{$mon};
-       return timegm($sec, $min, $hour, $day, $mon, $year);
+
+       if ($text =~ /^(\d{4}) (\w{3}) (\d+) (\d{2}):(\d{2}):(\d{2})$/) {
+               my ($year, $mon, $day, $hour, $min, $sec) = ($1, $2, $3, $4, $5, $6);
+               $mon =~ y/A-Z/a-z/;
+               die "Invalid month name $mon" if !exists $monname{$mon};
+               $mon = $monname{$mon};
+               return timegm($sec, $min, $hour, $day, $mon, $year);
+       } elsif ($text =~ /^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})(?:\.\d+)?$/) {
+               my ($year, $mon, $day, $hour, $min, $sec) = ($1, $2-1, $3, $4, $5, $6);
+               return timegm($sec, $min, $hour, $day, $mon, $year);
+       } else {
+               die "Cannot parse date: $text\n";
+       }
 }
 
 sub isin {
        my $val = shift;
 
+       return 0 if !$val;
+
        return grep( $_ eq $val, @_ );
 }