aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/fetchmaildistrib
blob: 00cc19107230abc10071c94d5c23cf42aa140d0a (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
#/bin/bash
#
# fetchmaildistrib --- Distribute central fetchmail knowledge.
#
# The central fetchmail database, /etc/fetchmail, contains all accounts that
# are to be fetched by the root's daemon. Often, a user desires quicker
# access (e.g., when testing some email path). In such cases, the destination
# user (marked as is USER here in the poll lines) should set up a ~/.fetchmailrc
# for himself. This scripts generates such lines from the central file.
#
# By Rick van Rein.

# From stdin, select poll lines for user $1
function selectuser () {
	grep ^poll | grep "is $1 here"
}


for i in `cut -d: -f1 </etc/passwd`
do	homedir=`grep ^$i: /etc/passwd | cut -d: -f6`
	fetchfile=`selectuser $i </etc/fetchmailrc`
	if [ -z "$fetchfile" ]
	then	rm -f $homedir/.fetchmailrc
	else	cp /dev/null $homedir/.fetchmailrc
		chmod go-rwx $homedir/.fetchmailrc
		grep ^defaults /etc/fetchmailrc >>$homedir/.fetchmailrc
		selectuser $i </etc/fetchmailrc >>$homedir/.fetchmailrc
	fi
done
ite = "\e[1;37m"; $ANSI_normal = "\e[0;39m"; # Open up procmail open (PROCPIPE, "|$proc_path") || die "Can't open procmail pipe!"; # Analyze the message line by line while (<STDIN>) { # Suck up the lines we want, in this case I just want From: and Subject: if (/^From:/) { $from = $_; } if (/^Subject:/) { $subj = $_; } # Stuff it out to the pipe too print PROCPIPE; } # Print it out print "\n"; print $ANSI_green, " ", $from; print $ANSI_b_white, " ", $subj, $ANSI_normal; # fetchmail's status is appended after this print " -->"; # We're done close (PROCPIPE);