1175261Sobrien#! @PERL@ -T
281404Speter# -*-Perl-*-
3175261Sobrien
4175261Sobrien# Copyright (C) 1994-2005 The Free Software Foundation, Inc.
5175261Sobrien
6175261Sobrien# This program is free software; you can redistribute it and/or modify
7175261Sobrien# it under the terms of the GNU General Public License as published by
8175261Sobrien# the Free Software Foundation; either version 2, or (at your option)
9175261Sobrien# any later version.
1081404Speter#
11175261Sobrien# This program is distributed in the hope that it will be useful,
12175261Sobrien# but WITHOUT ANY WARRANTY; without even the implied warranty of
13175261Sobrien# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14175261Sobrien# GNU General Public License for more details.
15175261Sobrien
16175261Sobrien###############################################################################
17175261Sobrien###############################################################################
18175261Sobrien###############################################################################
19175261Sobrien#
20175261Sobrien# THIS SCRIPT IS PROBABLY BROKEN.  REMOVING THE -T SWITCH ON THE #! LINE ABOVE
21175261Sobrien# WOULD FIX IT, BUT THIS IS INSECURE.  WE RECOMMEND FIXING THE ERRORS WHICH THE
22175261Sobrien# -T SWITCH WILL CAUSE PERL TO REPORT BEFORE RUNNING THIS SCRIPT FROM A CVS
23175261Sobrien# SERVER TRIGGER.  PLEASE SEND PATCHES CONTAINING THE CHANGES YOU FIND
24175261Sobrien# NECESSARY TO RUN THIS SCRIPT WITH THE TAINT-CHECKING ENABLED BACK TO THE
25175261Sobrien# <@PACKAGE_BUGREPORT@> MAILING LIST.
26175261Sobrien#
27175261Sobrien# For more on general Perl security and taint-checking, please try running the
28175261Sobrien# `perldoc perlsec' command.
29175261Sobrien#
30175261Sobrien###############################################################################
31175261Sobrien###############################################################################
32175261Sobrien###############################################################################
33175261Sobrien
3481404Speter# From: clyne@niwot.scd.ucar.EDU (John Clyne)
3581404Speter# Date: Fri, 28 Feb 92 09:54:21 MST
3681404Speter# 
3781404Speter# BTW, i wrote a perl script that is similar to 'nfpipe' except that in
3881404Speter# addition to logging to a file it provides a command line option for mailing
3981404Speter# change notices to a group of users. Obviously you probably wouldn't want
4081404Speter# to mail every change. But there may be certain directories that are commonly
4181404Speter# accessed by a group of users who would benefit from an email notice. 
4281404Speter# Especially if they regularly beat on the same directory. Anyway if you 
4381404Speter# think anyone would be interested here it is. 
4481404Speter#
4581404Speter#	File:		mfpipe
4681404Speter#
4781404Speter#	Author:		John Clyne
4881404Speter#			National Center for Atmospheric Research
4981404Speter#			PO 3000, Boulder, Colorado
5081404Speter#
5181404Speter#	Date:		Wed Feb 26 18:34:53 MST 1992
5281404Speter#
5381404Speter#	Description:	Tee standard input to mail a list of users and to
5481404Speter#			a file. Used by CVS logging.
5581404Speter#
5681404Speter#	Usage:		mfpipe [-f file] [user@host...]
5781404Speter#
5881404Speter#	Environment:	CVSROOT	
5981404Speter#				Path to CVS root.
6081404Speter#
6181404Speter#	Files:
6281404Speter#
6381404Speter#
6481404Speter#	Options:	-f file	
6581404Speter#				Capture output to 'file'
6681404Speter#			
6781404Speter
6881404Speter$header = "Log Message:\n";
6981404Speter
7081404Speter$mailcmd = "| mail -s  'CVS update notice'";
7181404Speter$whoami = `whoami`;
7281404Speterchop $whoami;
7381404Speter$date = `date`;
7481404Speterchop $date;
7581404Speter
7681404Speter$cvsroot = $ENV{'CVSROOT'};
7781404Speter
7881404Speterwhile (@ARGV) {
7981404Speter        $arg = shift @ARGV;
8081404Speter
8181404Speter	if ($arg eq '-f') {
8281404Speter                $file = shift @ARGV;
8381404Speter	}
8481404Speter	else {
8581404Speter		$users = "$users $arg";
8681404Speter	}
8781404Speter}
8881404Speter
8981404Speterif ($users) {
9081404Speter	$mailcmd = "$mailcmd $users";
9181404Speter	open(MAIL, $mailcmd) || die "Execing $mail: $!\n";
9281404Speter}
9381404Speter 
9481404Speterif ($file) {
9581404Speter	$logfile = "$cvsroot/LOG/$file";
9681404Speter	open(FILE, ">> $logfile") || die "Opening $logfile: $!\n";
9781404Speter}
9881404Speter
9981404Speterprint FILE "$whoami $date--------BEGIN LOG ENTRY-------------\n" if ($logfile);
10081404Speter
10181404Speterwhile (<>) {
10281404Speter	print FILE $log if ($log && $logfile);
10381404Speter
10481404Speter	print FILE $_ if ($logfile);
10581404Speter	print MAIL $_ if ($users);
10681404Speter
10781404Speter	$log = "log: " if ($_ eq $header);
10881404Speter}
10981404Speter
11081404Speterclose FILE;
11181404Speterdie "Write failed" if $?;
11281404Speterclose MAIL;
11381404Speterdie "Mail failed" if $?;
11481404Speter
11581404Speterexit 0;
116