#!/usr/bin/perl # # Extract information on the fetchmail project size from the NEWS file # # Note: this only works if you have a news file from 5.1.1 or later -- # I didn't patch the code sizes into NEWS until then. # my($release, $date, $jdate); %month_offsets = ( "Jan", 0, "Feb", 31, "Mar", 59, "Apr", 90, "May", 120, "Jun", 151, "Jul", 181, "Aug", 212, "Sep", 243, "Oct", 273, "Nov", 304, "Dec", 334, ); sub day_offset { my($datestring) = @_; my($wday, $month, $day, $time, $zone, $year) = split(' ', $datestring); my($jdate); # We don't deal with leap years here because the baseline day is after # the last leap year (1996) and there's a long time before the next # one (2004). $jdate = ($year - 1996) * 365; $jdate += $month_offsets{$month}; $jdate += ($day - 1); # Baseline day for the size data was Fri Oct 25 23:02:26 EDT 1996 $jdate -= 297; return($jdate); } open(NEWS, "NEWS"); $timestamp = `date`; chop $timestamp; $release = "unknown"; $lines = "unknown"; $date = "unknown"; $jdate = "unknown"; print <) { my($sum); if (/^%/) { print $_; } elsif (/^fetchmail-([^ ]*) \(([^)]+)\)(, [0-9]* lines)?:/) { $release = $1; $date = $2; $jdate = &day_offset($date); if ($3) { $lines = substr($3, 2, length($3) - 8); } else { $lines = 'na' } } elsif (/There are ([0-9]*) people on fetchmail-friends and ([0-9]*) on fetchmail-announce/) { $sum = $1 + $2; print "${release}\t${lines}\t$1\t$2\t${sum}\t${jdate}\t${date}\n"; $release = "unknown"; $date = "unknown"; } elsif (/There are ([0-9]*) people on the fetchmail-friends list./) { print "$release\t${lines}\t$1\t0\t$1\t$jdate\t$date\n"; $release = "unknown"; $date = "unknown"; } } # end