#!/usr/bin/perl my (@entries, @short_entries); sub get_folder_names { my ($dir, $file, $short, $glob, @path); $dir = $_[0]; $glob = "$dir/*"; $glob =~ s/ /\\ /; @path = glob ($glob); foreach $file (sort @path) { if (-d $file && $file =~ /.*\.sbd/) { get_folder_names ($file); } else { $short = $file; $short =~ s/$nsdir//; $short =~ s/.sbd//g; @entries = (@entries, $file); @short_entries = (@short_entries, $short); } } } sub copy_folders { my (@path, @name, $dir, $masterdir, $lastdir, $i); @path = @{$_[0]}; @name = @{$_[1]}; for ($i = 0; $i < @path; $i++) { chomp ($name[$i]); $masterdir = $evdir; foreach $dir (split (/\//, $name[$i])) { if ($dir ne "") { if ($masterdir ne $evdir) { $masterdir .= "/subfolders"; mkdir ($masterdir, 0775); } $masterdir .= "/$dir"; mkdir ($masterdir, 0775); } } print "Copying \"$path[$i]\" ==> $masterdir/mbox\n"; system "cp \"$path[$i]\" \"$masterdir/mbox\""; open (FOLDERDATA, ">$masterdir/folder-metadata.xml"); print FOLDERDATA "\n"; print FOLDERDATA "\n"; print FOLDERDATA " mail\n"; print FOLDERDATA " $name[$i] folder\n"; print FOLDERDATA "\n"; close (FOLDERDATA); } } $user = `whoami`; chomp($user); $nsdir = "/home/$user/nsmail"; $evdir = "/home/$user/evolution/local/"; foreach $arg (@ARGV) { if ($arg =~ /^--nsdir=/) { $nsdir = $arg; $nsdir =~ s/^--nsdir=//; } if ($arg =~ /^--evdir=/) { $evdir = $arg; $evdir =~ s/^--evdir=//; } } print "Netscape Mail Directory: $nsdir\n"; print "Evolution Mail Directory: $evdir\n"; if (!(-d $nsdir)) { print "Netscape mail directory was not found\n"; exit; } if (!(-d $evdir)) { print "Evolution mail directory was not found\n"; exit; } get_folder_names ($nsdir); copy_folders (\ entries, \ short_entries);