aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/gotmail
blob: 8580da6dd218e7ac0efb80096b0357d7df99bae6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#------------------------------------------------------------------------------
#
#               GotMail - Statistics Printing Script for GetMail
#
#             1999 by Thomas Nesges <ThomaNesges@TNT-Computer.de>
#
#------------------------------------------------------------------------------

#------------------------------------------------------------------------------
# GotMail reads a GetMail logfile (/var/log/fetchmail.log) and prints
# statistics from all sessions logged in it, either as normal text on the
# Console, or as an html-file. The parsing is done with the awk-scripts
# gotmail.awk and gotmail.html.awk.
# You can configure its output with a file gotmail.conf either in your home,
# /etc, or in /usr/local/gotmail.
#
# GetMail has to be properly installed. For HTML output the htmllib has to be
# installed in /usr/local/htmllib.
#
# If you have any changes/corrections in the script, please send me email.
#------------------------------------------------------------------------------


#!/bin/sh

# Gotmail
# 1999 by Thomas Nesges <ThomasNesges@TNT-Computer.de>

# read the configuration
# the configuration can either be
#  ~/.gotmail.conf
#  /etc/gotmail.conf
#  /usr/local/gotmail/gotmail.conf
if { test -e ~/.gotmail.conf; };
    then { source ~/.gotmail.conf; };
    else { if { test -e /etc/gotmail.conf; }; 
          then { source /etc/gotmail.conf; };
          else { if { test -e /usr/local/gotmail/gotmail.conf; };
          then { source /usr/local/gotmail/gotmail.conf; };
                 else { echo 'Error: gotmail.conf could not be read';
			echo 'gotmail exits now..';
			exit; };
                 fi; };
          fi; };
fi;


# grep the fetchmail.log for relevant messages and save them in
# gotmails tempfile
cat /var/log/fetchmail.log | grep 'message' >> /tmp/gotmail.log.tmp
cat /var/log/fetchmail.log | grep 'Authorization' >> /tmp/gotmail.log.tmp
cat /var/log/fetchmail.log | grep 'fetchmail st' >> /tmp/gotmail.log.tmp


# parse the gotmail tempfile and prints a statistiks-screen
case "$1" in
  html)
    awk -f /usr/local/htmllib/htmllib.awk -f /usr/local/gotmail/gotmail.html.awk /tmp/gotmail.log.tmp > /dev/null
    ;;
  -v)
    echo 'gotmail version: 0.0.1'
    ;;
  *)
    awk -f /usr/local/gotmail/gotmail.awk /tmp/gotmail.log.tmp
    ;;
esac

# remove the gotmail tempfile
rm /tmp/gotmail.log.tmp
p">(<ID>) { if (/^\t(.*):/) { push(@versions, $1); } } close(ID); if ($versions[0] eq $rcsid) { $rcsid = $versions[0]; $oldid = $versions[1]; } else { $rcsid = '<workfile>'; $oldid = $versions[0]; } #$ENV{'PATH'} = "~esr/bin:/bin:/usr/bin"; print "Building $version release, RCS ID $rcsid, previous RCS ID $oldid\n"; print "Test-building the software...\n"; if (system("su -c 'make >/dev/null' esr")) { die("Compilation failure\n"); } print "Building the distribution...\n"; if (system("su -c 'make dist >/dev/null' esr")) { die("Distribution-build failure\n"); } print "Building the RPMs...\n"; if (system("make rpm >/dev/null 2>/dev/null && chown esr *.rpm")) { die("RPM-build failure\n"); } open(REPORT, ">PREAMBLE.$$"); print REPORT <<EOF; The $version release of fetchmail is now available at the usual locations, including http://$ENV{'WWWHOST'}/~esr/fetchmail. Here are the release notes: EOF # Extract the current notes open(NEWS, "NEWS"); while (<NEWS>) { if (/^fetchmail/) { print REPORT $_; last; } } while (<NEWS>) { if (/^fetchmail/) { last; } print REPORT $_; } $oldrcs = $oldid; $oldrcs =~ tr/-/./; print REPORT <<EOF; By popular demand, diffs from the previous release have been omitted. EOF #Diffs from the previous ($oldrcs) release follow as a MIME attachment. close(NEWS); close(REPORT); if ($rcsid eq '<workfile>') { system("rcsdiff -u -r$oldid RCS/* 2>/dev/null >DIFFS.$$"); } else { system("rcsdiff -u -r$oldid -r$rcsid RCS/* 2>/dev/null >DIFFS.$$"); } rename("PREAMBLE.$$", "RELEASE.NOTES"); system("chown esr RELEASE.NOTES"); # If we ever want to go back to enclosing diffs. #system "metasend -b -D 'fetchmail-$rcsid announcement' -m 'text/plain' -e 7bit -f PREAMBLE.$$ -n -D 'diff -u between -$oldrcs $rcsid' -m 'text/plain' -e 7bit -f DIFFS.$$ -o RELEASE_NOTES"; unlink("PREAMBLE.$$"); unlink("DIFFS.$$"); print "Building index page...\n"; system("rm -f index.html; indexgen.sh"); print "Done\n"; # makerelease ends here