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