1#! @PERL@ -T
2# -*-Perl-*-
3
4# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
5
6# This program is free software; you can redistribute it and/or modify
7# it under the terms of the GNU General Public License as published by
8# the Free Software Foundation; either version 2, or (at your option)
9# any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15
16###############################################################################
17###############################################################################
18###############################################################################
19#
20# THIS SCRIPT IS PROBABLY BROKEN.  REMOVING THE -T SWITCH ON THE #! LINE ABOVE
21# WOULD FIX IT, BUT THIS IS INSECURE.  WE RECOMMEND FIXING THE ERRORS WHICH THE
22# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
23# SERVER TRIGGER.  PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
24# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
25# <@PACKAGE_BUGREPORT@> MAILING LIST.
26#
27# For more on general Perl security and taint-checking, please try running the
28# `perldoc perlsec' command.
29#
30###############################################################################
31###############################################################################
32###############################################################################
33
34# From: clyne@niwot.scd.ucar.EDU (John Clyne)
35# Date: Fri, 28 Feb 92 09:54:21 MST
36#
37# BTW, i wrote a perl script that is similar to 'nfpipe' except that in
38# addition to logging to a file it provides a command line option for mailing
39# change notices to a group of users. Obviously you probably wouldn't want
40# to mail every change. But there may be certain directories that are commonly
41# accessed by a group of users who would benefit from an email notice.
42# Especially if they regularly beat on the same directory. Anyway if you
43# think anyone would be interested here it is.
44#
45#	File:		mfpipe
46#
47#	Author:		John Clyne
48#			National Center for Atmospheric Research
49#			PO 3000, Boulder, Colorado
50#
51#	Date:		Wed Feb 26 18:34:53 MST 1992
52#
53#	Description:	Tee standard input to mail a list of users and to
54#			a file. Used by CVS logging.
55#
56#	Usage:		mfpipe [-f file] [user@host...]
57#
58#	Environment:	CVSROOT
59#				Path to CVS root.
60#
61#	Files:
62#
63#
64#	Options:	-f file
65#				Capture output to 'file'
66#
67
68$header = "Log Message:\n";
69
70$mailcmd = "| mail -s  'CVS update notice'";
71$whoami = `whoami`;
72chop $whoami;
73$date = `date`;
74chop $date;
75
76$cvsroot = $ENV{'CVSROOT'};
77
78while (@ARGV) {
79        $arg = shift @ARGV;
80
81	if ($arg eq '-f') {
82                $file = shift @ARGV;
83	}
84	else {
85		$users = "$users $arg";
86	}
87}
88
89if ($users) {
90	$mailcmd = "$mailcmd $users";
91	open(MAIL, $mailcmd) || die "Execing $mail: $!\n";
92}
93
94if ($file) {
95	$logfile = "$cvsroot/LOG/$file";
96	open(FILE, ">> $logfile") || die "Opening $logfile: $!\n";
97}
98
99print FILE "$whoami $date--------BEGIN LOG ENTRY-------------\n" if ($logfile);
100
101while (<>) {
102	print FILE $log if ($log && $logfile);
103
104	print FILE $_ if ($logfile);
105	print MAIL $_ if ($users);
106
107	$log = "log: " if ($_ eq $header);
108}
109
110close FILE;
111die "Write failed" if $?;
112close MAIL;
113die "Mail failed" if $?;
114
115exit 0;
116