aboutsummaryrefslogtreecommitdiffstats
path: root/timeseries
blob: 1316c330147faffa379cb76535e1b8ea90ea03ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.lineno
#!/usr/bin/perl
#
# Extract information on the fetchmail project size from the NEWS file
#
# Output other than pass-through % lines is tab-separated fields.
# Field 1: release ID
# Field 2: count of fetchmail-friends subscribers
# Field 3: count of fetchmail-announce subscribers
# Field 4: total subscribers to both lists
# Field 5: date of release (days since first datum)
# Field 6: date of release (RFC822 date format)
#
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");
$release = "unknown";
$date = "unknown";
$jdate = "unknown";
while ($_ = <NEWS>)
{
    my($sum);

    if (/^%/) {
	print $_;
    }
    elsif (/^fetchmail-([^ ]*) \(([^)]*)\):?/) {
	$release = $1;
	$date = $2;
	$jdate = &day_offset($date);
    }
    elsif (/There are ([0-9]*) people on fetchmail-friends and ([0-9]*) on fetchmail-announce/) {
	$sum = $1 + $2;
	print "${release}\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$1\t0\t$1\t$jdate\t$date\n";
	$release = "unknown";
	$date = "unknown";
    }
}

# end
;IMAP: Courier IMAP</td><td>IMAP4rev1</td> <tr><td>POP3: Qpopper 4.0.5</td><td>CAPA UIDL</td> </tr></table> <p>If you control a post-office server that is not one of the types listed here, please consider lending me a test account. Note that I do <em>not</em> need shell access, just the permissions to send mail to a mailbox the server looks at and to fetch mail off of it.</p> <p>I'd like to have weird things like a POP2 server on here. Also more closed-source servers because they tend to be broken in odd ways. These are the real robustness tests.</p> <hr /> <table width="100%" cellpadding=0 summary="Canned page header"><tr> <td width="30%">Back to <a href="/~esr">Eric's Home Page</a> <td width="30%" align=center>Up to <a href="/~esr/sitemap.html">Site Map</a> <td width="30%" align=right>Mon Jan 12 15:52:14 EST 2004 </tr></table> <br clear="left" /> <ADDRESS>Eric S. Raymond <A HREF="mailto:esr@thyrsus.com">&lt;esr@thyrsus.com&gt;</A></ADDRESS> </BODY> </HTML>