summaryrefslogtreecommitdiff
path: root/localshowmaildelivered
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2008-02-03 22:09:07 +0000
committerJonas Smedegaard <dr@jones.dk>2008-02-03 22:09:07 +0000
commit31a2f897cfd72618879f348b9c6c63b6f317d2c5 (patch)
tree7af6d11513adb3907b1af052adce88268469ad24 /localshowmaildelivered
parent21f80eb17189a95f90f02af1cca52acb5bc31df5 (diff)
Rewrite to use common localshowlogentries.
Diffstat (limited to 'localshowmaildelivered')
-rwxr-xr-xlocalshowmaildelivered64
1 files changed, 20 insertions, 44 deletions
diff --git a/localshowmaildelivered b/localshowmaildelivered
index 2b4f992..5dea331 100755
--- a/localshowmaildelivered
+++ b/localshowmaildelivered
@@ -1,43 +1,42 @@
#!/bin/sh
#
# /usr/local/sbin/localshowmaildelivered
-# Copyright 2007 Jonas Smedegaard <dr@jones.dk>
+# Copyright 2007-2008 Jonas Smedegaard <dr@jones.dk>
#
-# $Id: localshowmaildelivered,v 1.6 2007-10-04 00:38:03 jonas Exp $
+# $Id: localshowmaildelivered,v 1.7 2008-02-03 22:09:07 jonas Exp $
#
# List recently delivered emails
#
-input="${input:-user}"
-output="${output:-shortline}"
-logfilecount="${logfilecount:-1}"
pattern="${pattern:-user_dovecot}"
-
mailname="$(cat /etc/mailname | head -n 1)"
-
sed_longline='s/^\(.\{15\}\) [^:]*: /\1 /'
-sed_time='s/^\(.\{15\}\) .*$/\1 /'
case $pattern in
user_dovecot)
# Dovecot "deliver"
- egrep_before='deliver\(('
- egrep_after=')\).*saved mail to '
- sed_shortline='s/^\(.\{15\}\) [^)]*): msgid=/\1 (/;s/: saved mail to/)/;s/ INBOX$//'
- sed_msgid='s/^[^)]*): msgid=//;s/: .*$//'
+ localshowlogentries "$1" \
+ 'deliver\((' \
+ ')\).*saved mail to ' \
+ 's/^\(.\{15\}\) [^)]*): msgid=/\1 (/;s/: saved mail to/)/;s/ INBOX$//' \
+ 's/^[^)]*): msgid=//;s/: .*$//'
;;
user_procmail)
# Postfix/local via procmail
- egrep_before=' postfix/local.*: to=<'
- egrep_after='@'"$mailname"'>, .*status=sent \(delivered to command: procmail'
- sed_shortline='s/^\(.\{15\}\) [^:]*: /\1 (/;s/: .*$/)/'
- sed_qid='s/^[^:]*: //;s/: .*$//'
+ localshowlogentries "$1" \
+ ' postfix/local.*: to=<' \
+ '@'"$mailname"'>, .*status=sent \(delivered to command: procmail' \
+ 's/^\(.\{15\}\) [^:]*: /\1 (/;s/: .*$/)/' \
+ '' \
+ 's/^[^:]*: //;s/: .*$//'
;;
qid_postfix)
- egrep_before='[^[:xdigit:]]'
- egrep_after='[^[:xdigit:]]'
- sed_shortline="$sed_longline"
- sed_qid='s/^[^:]*: //;s/: .*$//'
+ localshowlogentries "$1" \
+ '[^[:xdigit:]]' \
+ '[^[:xdigit:]]' \
+ "$sed_longline" \
+ '' \
+ 's/^[^:]*: //;s/: .*$//'
;;
*)
echo >&2 "ERROR: unknwon pattern \"$pattern\""
@@ -45,27 +44,4 @@ case $pattern in
;;
esac
-case $output in
- shortline)
- sedstring="$sed_shortline"
- ;;
- longline)
- sedstring="$sed_longline"
- ;;
- msgid)
- sedstring="$sed_msgid"
- ;;
- qid)
- sedstring="$sed_qid"
- ;;
- *)
- echo >&2 "ERROR: unknwon output \"$output\""
- exit 1
- ;;
-esac
-
-localuser="$1"
-
-find /var/log -name 'mail.log*' | sort -nr -t. -k3 | tail -n "$logfilecount" | xargs zcat -f \
- | egrep -- "$egrep_before$localuser$egrep_after" \
- | sed "$sedstring"
+exit 0