#!/bin/bash

#
# maildirreport - a simple mailbox summary tool for maildir mailboxes
#
# Copyright (C) 2007, Andreas Bolka
# Licensed under BSD3-style terms (see bottom)
# 

if [ "$#" -lt "1" ]; then
    echo "Usage: $0 maildir [--dont-move] [--with-subject]" >&2
    exit 64
fi

FOLDER=$1
MOVE=true
SUBJ=false
while shift; do
    if [ "$1" == "--dont-move" ]; then MOVE=false; fi
    if [ "$1" == "--with-subject" ]; then SUBJ=true; fi
done

# ---

function read_header() { FILE=$1; HEADER=$2
    grep "^$HEADER:" $FILE | cut -d' ' -f2- | head -n1
}

# ---

FOLDER_NAME=`basename $FOLDER`

MAILS_CUR=`find $FOLDER/cur -type f`
MAILS_NEW=`find $FOLDER/new -type f`

N_CUR=`echo $MAILS_CUR | wc -w`
N_NEW=`echo $MAILS_NEW | wc -w`

if [ "$N_NEW" -gt "0" ]; then
    if $SUBJ; then 
	echo "~s$N_NEW new mails in folder '$FOLDER_NAME'"
    fi
    echo "Status as of `date`"
    echo
    echo "-----------------------------------------------------------------"
    echo
    echo "Read mails in $FOLDER_NAME: $N_CUR"
    echo "New mails in $FOLDER_NAME:  $N_NEW"
    echo
    echo "-----------------------------------------------------------------"
    echo
    echo "New mails:"
    echo
    for M in $MAILS_NEW; do
	echo -n "  From:     "; read_header $M "From" | cut -b-60
	echo -n "  Subject:  "; read_header $M "Subject" | cut -b-60
	echo
	if $MOVE; then 
	    mv $M "$FOLDER/cur/`basename $M`:2,"
	fi
    done
    echo "-----------------------------------------------------------------"
fi


#    Copyright (C) 2007, Andreas Bolka
#
#    All rights reserved.
#
#    Redistribution and use in source and binary forms, with or without
#    modification, are permitted provided that the following conditions are met:
#
#    * Redistributions of source code must retain the above copyright notice,
#      this list of conditions and the following disclaimer.
#
#    * Redistributions in binary form must reproduce the above copyright notice,
#      this list of conditions and the following disclaimer in the documentation
#      and/or other materials provided with the distribution.
#
#    * Neither the name of the author nor the names of its contributors may be
#      used to endorse or promote products derived from this software without
#      specific prior written permission.
#
#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
#    IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
#    THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
#    PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
#    CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
#    EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
#    PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
#    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
#    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
#    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
#    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
