Initial commit of watch_mdbox. - watch_mdbox - A script to check for changes in dovecot (m)dbox folders.
       
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) LICENSE
       ---
 (DIR) commit af00eeb4abf0a253a523e61a2b8562d060611752
 (HTM) Author: Christoph Lohmann <20h@r-36.net>
       Date:   Sat, 26 Feb 2011 01:03:12 +0100
       
       Initial commit of watch_mdbox.
       
       Diffstat:
         README.md                           |      26 ++++++++++++++++++++++++++
         bin/watch_mdbox                     |      43 ++++++++++++++++++++++++++++++
         home/mswatchrc                      |      11 +++++++++++
       
       3 files changed, 80 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/README.md b/README.md
       @@ -0,0 +1,26 @@
       +# watch_mdbox
       +
       +This script is intended to be used in conjunction with mswatch [0]. You
       +can see an example ~/.mswatchrc in home/mswatchrc.
       +
       +You should change the paths according to your your setup.
       +
       +t[0] http://mswatch.sourceforge.net/
       +
       +## What does it do?
       +
       +This script checks for changes in a dbox[1], which is a mailbox format
       +introduced by the dovecot IMAP server[2] for handling mail storage more
       +efficiently.
       +
       +When new mail is added to the dbox, watch-mdbox receives an event through
       +inotify, parses the path and prints out the notification mswatch needs
       +for starting the synchronisation specifically on this mailbox.
       +
       +t[1] http://wiki2.dovecot.org/MailboxFormat/dbox 
       +t[2] http://www.dovecot.org
       +
       +## Obligatory cheering
       +
       +Have fun!
       +
 (DIR) diff --git a/bin/watch_mdbox b/bin/watch_mdbox
       @@ -0,0 +1,43 @@
       +#!/bin/bash
       +
       +delimiter="."
       +
       +if [ "$1" == "" ];
       +tthen
       +        mdboxroot="$HOME/mdbox"
       +else
       +        mdboxroot="$1"
       +fi
       +
       +mailboxes="${mdboxroot}/mailboxes"
       +
       +echo
       +
       +omailbox=""
       +otime=`date +%s`
       +
       +inotifywait -qrm -e modify \
       +        --format "%w" \
       +        --exclude "^dovecot.index.cache$" \
       +        "${mailboxes}" | \
       +while read status
       +do
       +        mailbox=`echo $status | \
       +                sed "s,^${mailboxes}/\(.*\)/dbox-Mails/$,\1,g"`;
       +        mailbox=`echo $mailbox | sed "s,/,${delimiter},g"`;
       +        if [ "$mailbox" == "$omailbox" ];
       +        then
       +                ntime=`date +%s`
       +                difft=$[$ntime - ($otime + 1)]
       +                if [ $difft -gt 0 ];
       +                then
       +                        otime=`date +%s`
       +                        echo $mailbox
       +                fi
       +        else
       +                echo $mailbox
       +                omailbox="$mailbox"
       +                otime=`date +%s`
       +        fi
       +done
       +
 (DIR) diff --git a/home/mswatchrc b/home/mswatchrc
       @@ -0,0 +1,11 @@
       +sync syncapp 
       +mailbox_prefix mb :
       +
       +store sshremote {
       +        watch ssh user@example.com "inputkill /usr/bin/watch_mdbox" 
       +}
       +
       +store local {
       +        watch /usr/bin/watch_mdbox
       +}
       +