#!%PerlProg% # # allage - mark all killed entries as gone # # Copyright (c) 1985 Corporation for Research and Educational Networking # Copyright (c) 1988 University of Illinois Board of Trustees, Steven # Dorner, and Paul Pomes # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. All advertising materials mentioning features or use of this software # must display the following acknowledgement: # This product includes software developed by the Corporation for # Research and Educational Networking (CREN), the University of # Illinois at Urbana, and their contributors. # 4. Neither the name of CREN, the University nor the names of their # contributors may be used to endorse or promote products derived from # this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE TRUSTEES AND CONTRIBUTORS ``AS IS'' AND # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE # ARE DISCLAIMED. IN NO EVENT SHALL THE TRUSTEES OR CONTRIBUTORS BE LIABLE # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. # # @(#)$Id: allage,v 1.2 1995/01/11 00:05:11 p-pomes Exp p-pomes $ $deleteMonths = 10; # really delete people this old $leftName = "left_uiuc"; # name of field to use $termName = "last_term"; # name of field to use if ($#ARGV<2 || $#ARGV>3) { print STDERR "Usage: allage prod.cnf sf.kill [sf.kill.dead]\n"; exit 1; } ($config,$stiffFile,$killFile,$krbFile) = @ARGV; # # let's find out any bad news right away # open(CONFIG,"<$config") || die "$config: $!\n"; open(STIFFFILE,"<$stiffFile") || die "$stiffFile: $!\n"; if ($killFile ne "") {open(KILLFILE,">$killFile") || die "$killFile: $!\n";} if ($krbFile ne "") {open(KRBFILE,">$krbFile") || die "$krbFile: $!\n";} # # find the number of the left field $lnum = -1; while () { if (/:$leftName:/) {($lnum)=(split(':'))[0];} elsif (/:$termName:/) {($tnum)=(split(':'))[0];} } if ($lnum<0) {die "Couldn't find $leftName in $config.\n";} if ($tnum<0) {die "Couldn't find $termName in $config.\n";} # # figure out today's number ($month,$year) = (split(' ',`date`))[1,5]; $m = 0; foreach $monthName ("Jan","Feb","Mar","Apr","May","Jun", "Jul","Aug","Sep","Oct","Nov","Dec") { if ($month eq $monthName) {$month=$m;last;} $m++; } $now = $year*12+$month; $month++; while () { chop; $term = 0; if (/\t$tnum:/) { $tmp = $_; $tmp =~ s/.*\t$tnum://; $tmp =~ s/\t.*//; ($m,$y) = split('/',$tmp); $term = $y*12 + $m - 1; } if (/\t$lnum:/) { $tmp = $_; $tmp =~ s/.*\t$lnum://; $tmp =~ s/\t.*//; ($m,$y) = split('/',$tmp); if ($y*12+$m-1 < $now-$deleteMonths && $now > $term) { if ($killFile ne "") {print KILLFILE "$_\n";} if ($krbFile ne "") {print KRBFILE "del $_\n";} } else { print "$_\n"; } } else { print "$_\t$lnum:$month/$year\n"; } }