But Mine Will Be Round Part the 318th
Since I’m finally getting down to grinding through my email I thought “wouldn’t it be cool to see visible evidence of my progress?” Then after I’d procrastinated for quite a while on the munin plugin repository looking at many plugins which were almost but not quite what I wanted, I decided to cement my stalling by writing my own. I even took the time to make it a wildcard plugin, though it is highly tailored to my email setup. (In short, it uses Maildir structure and my mailboxes tend to have a goofy set of period-delimited names where only the suffix is material.)
#!/bin/bash
# mailbox_ by Shannon Prickett <binder@manjusri.org>
MAILUSER=${0##*mailbox_}
case $1 in
config)
cat << 'EOT'
graph_title Emails By Folder
graph_vlabel Emails
graph_category mail
graph_args --base 1000 -l 0
graph_scale no
graph_info The count of emails in the current and new email folders.
EOT
;;
esac
TARGET="/home/${MAILUSER}/Maildir"
for folder in `ls -a ${TARGET}`
do
if [ -d ${TARGET}/$folder/cur ]; then
SHORTNAME=$(echo ${folder} | cut -d. -f 3 -)
if [ -z ${SHORTNAME} ]; then
SHORTNAME=INBOX
fi
case $1 in
config)
echo "${SHORTNAME}.label ${SHORTNAME}"
;;
*)
CURCOUNT=$(ls ${TARGET}/$folder/cur | wc -l)
NEWCOUNT=$(ls ${TARGET}/$folder/new | wc -l)
COUNT=$((${CURCOUNT}+${NEWCOUNT}))
echo "${SHORTNAME}.value ${COUNT}"
;;
esac
fi
done
UPDATED: now it sums read and unread and has a typo fixed.
