Blob Blame History Raw
#!/usr/bin/perl
#
# Usage:	folderxfer inputfile
#
# Purpose:	Converts contents of Berkeley-format mail folders
#		to Cyrus mailboxes
#
# Input:	Output of 'bsd2cyrus' 
#		(username:Cyrus-folder-name:Berkeley-folder-path)
#
# Warnings:	The root mailbox and empty Cyrus folder must 
#		exist before conversion takes place, and source folders 
#		should be checked for RFC 822 content before being processed
#
#$Id: folderxfer,v 1.1 2004/02/04 12:59:42 karsten Exp $

$pwd       = "/usr/lib/cyrus-imapd";      
$mailstore = "/var/spool/imap";        # Cyrus mailstore
$cat       = "/bin/cat";
$cmd       = "/usr/bin/formail -n 20 -s $pwd/cpmsg";

$folders = "$ARGV[0]";
if (!$folders) { die "Usage: $0 filename"; }

open (MB,"$folders") || die "can't open $folders";

while (<MB>) {

    chop;

    # Be careful with this split - the last token might have
    # whitespace we want to preserve

    ($user,$cyrusfolder,$folder) = split(/:/,$_,3);
    @fields = split(/\./,$cyrusfolder);
    $cyrfol = $fields[$#fields];

    $fcat = "$cat \"$folder\"";
    print $fcat;
    $prefix = substr($user,0,1);
    system ("$fcat | $cmd '$mailstore/$prefix/user/$user/$cyrfol'");
    #print "'$mailstore/$prefix/user/$user/$cyrfol";
}
close MB;