LSTOWN-L Archives

LISTSERV List Owners' Forum

LSTOWN-L

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Steve Howie <[log in to unmask]>
Mon, 4 Mar 1996 10:31:15 -0500
text/plain (110 lines)
On Mon, 4 Mar 1996, Larry Eckley wrote:
 
> Is there a method of converting another listserv subscriber list to the format
> used by L-SOFT.  Specifically, the listproc version 6.0 authored by Anastasios
> Kotsikonas.  This listproc's subscriber file is built as one address per line.
> Thanks for any help.
>
 
Larry,
 
We used the following Perl script to do our migration recently. You should
be able to use it with minimal modification. It gets rid of those mail hub
addresses Listproc is so fond of (the ones you need the .aliases file
for), and extracts the proper email address from them. It basically
creates a file consisting of a number of ADD commands for each user. Any
users who have non-default options set have an entry placed in an addendum
file (SET commands), to be run later. It also rejects subscribers who
don't specify a two-token Full Name when they signed up for a Listproc
list.
 
You may have to split up the larger files, since there is a (200?) limit
on the number of LISTSERV commands per mail message. Good luck!
 
-------------------------------------------------------------------
#!/usr/local/bin/perl
#########################################################
#
#       CONVSUB
#
#       Converts a .subscribers file from Listproc into
#       a number of LISTSERV "ADD" commands. Non-default
#       subscriber options are batched in a file in the
#       corresponding LISTSERV format.
#
#########################################################
 
$listname = @ARGV[0];
 
open(INFILE, "lists/$listname/.subscribers");
open(OUTFILE, ">$listname");
open(EXTRA, ">$listname.addendum");
open(REJECTS, ">$listname.rejects");
 
 
$concealed = 0;
$repro     = 0;
$noack     = 0;
$nomail    = 0;
$digest    = 0;
$noname    = 0;
$total_read = 0;
 
while(<INFILE>) {
        chop;
        ($email, $mode, $pw, $conceal, $name) = split(/ /,$_, 5);
        $total_read++;
        $save = $email;
        $email =~ s/^<(.*)://;
        $email =~ s/>$//;
        if ($name ne "") {
                printf(OUTFILE "quiet add $listname %s\t%s\n", $email, $name);
        }
        else {
                $noname++;
                print REJECTS "Rejected: ", $_;
                next;
        }
        if ($conceal eq "YES") {
                printf(EXTRA "quiet set $listname CONCEAL FOR %s\n", $email);
                $concealed++;
        }
        if ($mode eq "ACK") {
                $repro++;
        }
 
        if ($mode eq "NOACK") {
                printf(EXTRA "quiet set $listname NOREPRO FOR %s\n", $email);
                $noack++;
        }
        if ($mode eq "DIGEST") {
                printf(EXTRA "quiet set $listname DIGEST FOR %s\n", $email);
                $digest++;
        }
        if ($mode eq "POSTPONE") {
                printf(EXTRA "quiet set $listname NOMAIL FOR %s\n", $email);
                $nomail++;
        }
}
 
printf("\nAdded %5d users, made up of:\n\tConcealed:\t%4d\n\tRepro:\t\t%4d\n\tNoack\t\t%4d\n\tDigest:\t\t%4d\n\tPostpone:\t%4d\n\tNo Name given:\t%4d\n\n",
        $total_read, $concealed, $repro, $noack, $digest, $nomail, $noname);
close(INFILE);
close(REJECTS);
close(EXTRA);
close(OUTFILE);
exit 0;
 
-------------------------------------------------------
 
Scotty
--
=================================================================
Steve Howie                             Email:  [log in to unmask]
NetNews and Gopher Admin.               Phone:  (519) 824-4120 x2556
Computing and Communications Svcs.      Fax:    (519) 763-6143
University of Guelph
 
If it's not Scottish its CRRRRRAAAAAAAAAAAAAAPPPPP
=================================================================

ATOM RSS1 RSS2