home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / cvs-1.8.7-bin.lha / lib / cvs / contrib / mfpipe < prev    next >
Text File  |  1996-10-12  |  2KB  |  89 lines

  1. #! /bin/perl
  2. # -*-Perl-*-
  3. #
  4. # From: clyne@niwot.scd.ucar.EDU (John Clyne)
  5. # Date: Fri, 28 Feb 92 09:54:21 MST
  6. # BTW, i wrote a perl script that is similar to 'nfpipe' except that in
  7. # addition to logging to a file it provides a command line option for mailing
  8. # change notices to a group of users. Obviously you probably wouldn't want
  9. # to mail every change. But there may be certain directories that are commonly
  10. # accessed by a group of users who would benefit from an email notice. 
  11. # Especially if they regularly beat on the same directory. Anyway if you 
  12. # think anyone would be interested here it is. 
  13. #
  14. #      $Id: mfpipe.pl,v 1.2 1995/07/10 02:01:57 kfogel Exp $
  15. #
  16. #
  17. #    File:        mfpipe
  18. #
  19. #    Author:        John Clyne
  20. #            National Center for Atmospheric Research
  21. #            PO 3000, Boulder, Colorado
  22. #
  23. #    Date:        Wed Feb 26 18:34:53 MST 1992
  24. #
  25. #    Description:    Tee standard input to mail a list of users and to
  26. #            a file. Used by CVS logging.
  27. #
  28. #    Usage:        mfpipe [-f file] [user@host...]
  29. #
  30. #    Environment:    CVSROOT    
  31. #                Path to CVS root.
  32. #
  33. #    Files:
  34. #
  35. #
  36. #    Options:    -f file    
  37. #                Capture output to 'file'
  38. #            
  39.  
  40. $header = "Log Message:\n";
  41.  
  42. $mailcmd = "| mail -s  'CVS update notice'";
  43. $whoami = `whoami`;
  44. chop $whoami;
  45. $date = `date`;
  46. chop $date;
  47.  
  48. $cvsroot = $ENV{'CVSROOT'};
  49.  
  50. while (@ARGV) {
  51.         $arg = shift @ARGV;
  52.  
  53.     if ($arg eq '-f') {
  54.                 $file = shift @ARGV;
  55.     }
  56.     else {
  57.         $users = "$users $arg";
  58.     }
  59. }
  60.  
  61. if ($users) {
  62.     $mailcmd = "$mailcmd $users";
  63.     open(MAIL, $mailcmd) || die "Execing $mail: $!\n";
  64. }
  65.  
  66. if ($file) {
  67.     $logfile = "$cvsroot/LOG/$file";
  68.     open(FILE, ">> $logfile") || die "Opening $logfile: $!\n";
  69. }
  70.  
  71. print FILE "$whoami $date--------BEGIN LOG ENTRY-------------\n" if ($logfile);
  72.  
  73. while (<>) {
  74.     print FILE $log if ($log && $logfile);
  75.  
  76.     print FILE $_ if ($logfile);
  77.     print MAIL $_ if ($users);
  78.  
  79.     $log = "log: " if ($_ eq $header);
  80. }
  81.  
  82. close FILE;
  83. die "Write failed" if $?;
  84. close MAIL;
  85. die "Mail failed" if $?;
  86.  
  87. exit 0;
  88.