#!/usr/bin/env perl
use strict;
use warnings;
use WWW::Mailman;
use Getopt::Long;
use YAML::Tiny qw( LoadFile DumpFile Dump );
my %param = (
config => 'mailman.yml',
cookie => 'mailman.cookie',
);
GetOptions( \%param, 'config=s', 'cookie=s' )
or die "Usage: $0 [ --config file ] [ --cookie file ]\n";
my $lists = LoadFile( $param{config} );
my %opt = ( cookie_file => $param{cookie} );
# actual code
my %roster;
# request the subscribers' list for all lists
for my $list ( values %$lists ) {
my $mm = WWW::Mailman->new( %opt, %$list );
$roster{ $mm->uri } = [ $mm->roster ];
}
# dump the result as YAML
print Dump( \%roster );