"Fossies" - the Fresh Open Source Software Archive

Member "cvs-1.11.23/contrib/mfpipe.in" (1 Sep 2005, 3426 Bytes) of package /linux/misc/old/cvs-1.11.23.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    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`;
   72 chop $whoami;
   73 $date = `date`;
   74 chop $date;
   75 
   76 $cvsroot = $ENV{'CVSROOT'};
   77 
   78 while (@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 
   89 if ($users) {
   90 	$mailcmd = "$mailcmd $users";
   91 	open(MAIL, $mailcmd) || die "Execing $mail: $!\n";
   92 }
   93  
   94 if ($file) {
   95 	$logfile = "$cvsroot/LOG/$file";
   96 	open(FILE, ">> $logfile") || die "Opening $logfile: $!\n";
   97 }
   98 
   99 print FILE "$whoami $date--------BEGIN LOG ENTRY-------------\n" if ($logfile);
  100 
  101 while (<>) {
  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 
  110 close FILE;
  111 die "Write failed" if $?;
  112 close MAIL;
  113 die "Mail failed" if $?;
  114 
  115 exit 0;