8
my $lurkerconf_fn = "/etc/lurker/lurker.conf";
9
#my $lurkerconfmm_fn = "/etc/lurker/lurker.conf.mm";
10
my $lurkerconfmm_fn = "$lurkerconf_fn.mm";
11
#my $list_lists_fn = "list_lists";
12
my $list_lists_fn = "/usr/lib/mailman/bin/list_lists |";
14
open LURKERCONF, $lurkerconf_fn or die "Could not open $lurkerconf_fn: $!";
16
my (%lists, %grouphead);
17
$grouphead{undef} = "undef";
19
my $listhost = "listhost";
20
my $listurl = "listurl";
22
my @list_props = qw/title address link description/;
33
if (not (($prop,$val) = /^\s*(\w+)\s*=\s*(.*?)\s*$/))
37
elsif ($prop eq 'group')
41
elsif ($prop eq 'heading')
43
$grouphead{$group} = $val;
45
elsif ($prop eq 'list')
49
$lists{$list}{group} = $group;
51
elsif (defined $list and grep($prop eq $_, @list_props))
53
$lists{$list}{$prop} = $val;
65
open LURKERMMCONF, $lurkerconfmm_fn or die "Could not open $lurkerconfmm_fn: $!";
67
while (<LURKERMMCONF>)
69
if (/\#\s*listhost\s*=\s*(.*?)\s*$/)
73
if (/\#\s*listurl\s*=\s*(.*?)\s*$/)
83
open LIST_LISTS, $list_lists_fn or die "Could not open $list_lists_fn: $!";
90
next unless (($name, $desc) = /(\w+) - (.*)$/);
92
if ($desc eq "[no description available]")
97
if (defined $lists{$name})
101
$lists{$name}{description} = $desc;
106
$lists{$name} = { title => $name,
107
address => $name . '@' . $listhost,
108
link => $listurl . '/' . $name, # todo
109
description => $desc,
118
print join "\n", @lconfout;
123
for $_ (sort { $lists{$a}{group} cmp $lists{$b}{group} } keys %lists)
125
unless ($lists{$_}{group} eq $group)
127
$group = $lists{$_}{group};
129
print "group = $group\n";
130
print " heading = ", ($grouphead{$group} ? $grouphead{$group} : "undef"), "\n";
134
print " list = $list\n";
135
foreach my $t (@list_props)
137
printf " %-14s = %s\n", $t, ${lists{$_}{$t}};