[prev in list] [next in list] [prev in thread] [next in thread]
List: evolution
Subject: Re: [Evolution] Mass Import Possible?
From: "Jason 'vanRijn' Kasper" <vR () movingparts ! net>
Date: 2001-12-08 4:35:28
Message-ID: 1007786128.2565.2.camel () tobias
[Download RAW message or body]
Actually, I faced this same problem a while ago and found this attached
shell script on Usenet somewhere. It has served pretty well....
On Fri, 2001-12-07 at 22:52, Chris Montgomery wrote:
> I would do that if I could, but I can't have Windows and Linux running at
> the same time since I have both installed on the same machine and have to
> reboot to switch between them.
>
> Thanks,
>
> Chris
>
> At 06:23 PM 12/7/2001 -0800, John Sturgeon wrote:
> >One option is to use an IMAP server as in intermediate data store. You
> >can put your folders on the IMAP server, then pull them into Evo.
> >
> >-john <><
> >
>
>
> _______________________________________________
> evolution maillist - evolution@ximian.com
> http://lists.ximian.com/mailman/listinfo/evolution
--
----%<----------%<----
Jason Kasper (vanRijn)
bash$ :(){ :|:&};:
Numbers 6:24-26
["mbox_to_evolution.sh" (mbox_to_evolution.sh)]
#!/bin/sh
#
# Recursively process a directory containing Unix mbox files
# into an Evolution-style directory hierarchy. A quick hack.
#
# (C) 2000 Joe Ammond <<A HREF="mailto:jra@twinight.org">jra@twinight.org</A>>
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU Library General Public License
# as published by the Free Software Foundation; either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# A quick hack, to say the least.
#
# Some initial variables
PROG=$0
ORIG=`pwd`
# A useful function (stolen from perl).
die() {
echo "$PROG: error: $1"
exit 1
}
#
# XML_cruft
#
# Takes a directory, and creates the folder-metadata.xml file.
XML_cruft () {
# Create the necessary cruft. I like here documents.
cat > $1/folder-metadata.xml <<-EOF
<?xml version="1.0"?>
<efolder>
<type>mail</type>
</efolder>
EOF
# Slightly cleaner than || with a here document.
[ "$?" = "0" ] || die 'cat failed in XML_cruft'
}
#
# Target_file creates the target Evolution directory, the XML
# metadata, and copies the mbox-style file over. It doesn't
# check to see that what it copies over is actually mbox data.
#
# Arguments
#
# $1 = target directory
# $2 = source file to copy to the target directory
Target_file () {
target=$1
source=$2
mkdir -p $target/$source || \
die 'mkdir failed in Target_file'
#ln `pwd`/$source $target/$source/mbox || \
cp $source $target/$source/mbox || \
die 'cp failed in Target_file'
XML_cruft $target/$source
}
#
# Target_directory sets up the necessary structure that Evolution needs
# to be able to recognize a folder with subfolders.
#
# Arguments
#
# $1 = target directory
# $2 = source file to copy to the target directory
Target_directory () {
target=$1
source=$2
mkdir -p $target/$source/subfolders || \
die 'mkdir failed in Target_directory.'
touch $target/$source/mbox || \
die 'touch failed in Target_directory.'
XML_cruft $target/$source
(cd $source ; Process $target/$source/subfolders)
}
#
# Iterate through all the files and subdirectories in the current
# directory, processing them into Evolution.
#
# Arguments
#
# $1 = target directory
Process () {
target=$1
for file in * ; do
if [ -f $file ]; then
echo -n "Processing $file..."
Target_file $target $file
echo "done."
elif [ -d $file ]; then
echo "Descending into $file"
Target_directory $target $file
else
echo "skipping non-regular file $file."
fi
done
}
#
# Main program
# getopt and friends aren't really necessary. Maybe for v2
if [ "$#"x != "1x" ]; then
echo "Usage: $PROG target_directory"
echo "Imports all files and subdirectories into the target directory,"
echo "and creates all the neccessary supporting structure that "
echo "Evolution needs to function."
exit 1
fi
# If target doesn't exist, create it.
if [ ! -d $1 ]; then
mkdir -p $1 || \
die 'mkdir of $1 failed'
echo 'Created $1.'
fi
# Abort if the target already has subfolders.
if [ -d $1/subfolders ]; then
echo "$1 already has an Evolution-style"
echo "subfolders/ directory, aborting."
exit 1
fi
# Start the process
Target_directory $1 .
exit 0
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic