jaromail

a commandline tool to easily and privately handle your e-mail
git clone git://parazyd.org/jaromail.git
Log | Files | Refs | Submodules | README

commit ace44e33a72099c683884957b0461da40a2b4aaf
parent 4441325aa6ee9e6f9e9b982ca7032d7501c3e99f
Author: Jaromil <jaromil@dyne.org>
Date:   Sun, 17 Jun 2012 19:09:47 +0200

backup now working, moves mails out of maildirs

Diffstat:
Msrc/jaro | 42++++++++++++++++++++++++++++++------------
1 file changed, 30 insertions(+), 12 deletions(-)

diff --git a/src/jaro b/src/jaro @@ -33,6 +33,7 @@ QUIET=0 DEBUG=0 DRYRUN=0 CLEANEXIT=1 +CALLMUTT=1 TMPRAM=0 # which command to use when creating dirs @@ -1469,13 +1470,24 @@ EOF act "Searching $mlstr for: ${expr}" exitcode=1 found=`mairix -F -f $rc ${=expr} 2> /dev/null | awk '{print $2}'` - if [ $found != 0 ]; then - mutt -F $MUTTDIR/rc -R -f $TMPDIR/search.result.$id - notice "Found $found matches looking for '$expr' in all mail folders" - exitcode=0 - else error "Nothing found matching '$expr'"; fi - rm -rf $TMPDIR/search.*.$id - rm -f $rc + if [ $CALLMUTT = 1 ]; then + + if [ $found != 0 ]; then + mutt -F $MUTTDIR/rc -R -f $TMPDIR/search.result.$id + notice "Found $found matches looking for '$expr' in all mail folders" + exitcode=0 + else error "Nothing found matching '$expr'"; fi + + rm -rf $TMPDIR/search.*.$id + rm -f $rc + return $exitcode + + else ### if not calling mutt, internal use mode: + # print out the full path to the results maildir + # return number of found hits + echo $TMPDIR/search.result.$id + return $found + fi } ############## ## Open a File @@ -1575,7 +1587,7 @@ mfolder=$dst mformat=maildir EOF mairix -F -f $rc 2> /dev/null - act "Copying matches to $dst" + act "Moving matches to $dst" pushd `dirname $dst`; basedir=`pwd`; popd rm -f $rc; cat <<EOF > $rc base=$basedir @@ -1586,9 +1598,16 @@ mformat=maildir EOF found=`mairix -F -f $rc -H ${expr} 2> /dev/null | awk '{print $2}'` notice "$found matches found, destination folder size is `du -hs $basedir/$dst | awk '{print $1}'`" - - # TODO: remove matched messages from source folders using rmdupes - + # invert the order of folders to start with destination in rmdupes + typeset -al PARAM + c=$(( ${#fold} )) + while [ $c -gt 0 ]; do + func "${fold[$c]}" + PARAM+=(${fold[$c]}) + c=$(( $c - 1 )) + done + QUIET=1 + rmdupes } rmdupes() { @@ -1626,7 +1645,6 @@ merge() { for i in `find ${src}/new -type f`; do mv $i ${dst}/new/; c=`expr $c + 1`; done for i in `find ${src}/tmp -type f`; do mv $i ${src}/tmp/; c=`expr $c + 1`; done act "$c mails succesfully moved." - rmdupes ${dst} notice "Operation completed, you can now safely remove ${src}" }