diff options
author | Jonas Smedegaard <dr@jones.dk> | 2008-02-03 22:09:07 +0000 |
---|---|---|
committer | Jonas Smedegaard <dr@jones.dk> | 2008-02-03 22:09:07 +0000 |
commit | 31a2f897cfd72618879f348b9c6c63b6f317d2c5 (patch) | |
tree | 7af6d11513adb3907b1af052adce88268469ad24 /localshowmaildelivered | |
parent | 21f80eb17189a95f90f02af1cca52acb5bc31df5 (diff) |
Rewrite to use common localshowlogentries.
Diffstat (limited to 'localshowmaildelivered')
-rwxr-xr-x | localshowmaildelivered | 64 |
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 |