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 =================================================================