#!/opt/bin/perl5 # ######################################################################### # # # Program to collect all user "OOP '96" page URL's # # # ######################################################################### # # # Version 1.0 - Written 20.02.96 by Steffen Beyer # # # ######################################################################### # # # Copyright (C) 1995 by software design & management GmbH & Co. KG # # # ######################################################################### # # Some important default settings: # $version = 'version 1.0'; # $self = $0; $self =~ s!^.*/!!; # # Configure here the name and (absolute!) path of the target file: # $target = "/u/www/.www/oop96/oop96.html"; # $buffer = "$target.$$"; # $backup = "$target.old"; # # Open target file: # unless (open(TARGET, "<$target")) { die "$self error: can't read '$target': $!\n"; } # # Open buffer file: # unless (open(BUFFER, ">$buffer")) { die "$self error: can't write '$buffer': $!\n"; } # # Copy target file to buffer: # $state = 0; # while ($line = ) { if ($state == 0) { if ($line =~ /\/) { $state = 1; } print BUFFER $line; } elsif ($state == 1) { if ($line =~ /\/) { $state = 2; &insert_users; print BUFFER "

Last updated: " . `date`; print BUFFER $line; } } else { print BUFFER $line; } } # close(BUFFER); # close(TARGET); # if (-f $backup) { unlink($backup); } # unless (rename($target,$backup)) { warn "$self warning: can't rename '$target' to '$backup'!\n"; warn "$self warning: deleting '$target' without backup!\n"; unlink($target); } # unless (rename($buffer,$target)) { warn "$self error: can't rename '$buffer' to '$target'!\n"; unlink($buffer); exit 1; } # # Done: # exit 0; # sub insert_users { setpwent; while (($login,$passwd,$uid,$gid,$quota,$comment,$name,$dir) = getpwent) { $name =~ s/[\t\r\n\f]/ /g; $name =~ s/ +/ /g; $name =~ s/^\s*//; $name =~ s/\s*$//; $name =~ s/\s*\(.*?\)\s*$//; $name =~ s/^Dr\.(\S)/Dr. $1/; $name =~ m/\s*(\S+)\s*$/; $lastname = $1; $firstname = $`; $firstname =~ s/^\s*(Dr\.)?\s*//; $firstname =~ s/\s*$//; if ($lastname eq "") { $lastname = $firstname; $firstname = ""; } if ($firstname eq "") { $user = $lastname; } else { $user = "$lastname $firstname"; } $user =~ tr/A-Z/a-z/; $name =~ s/&/;amp;/g; $name =~ s/;amp;/&/g; if (($user ne "") && ($usertable{$user} eq "")) { if (-r "$dir/.www/oop96.html") { $usertable{$user} = "$login:$name"; } } } endpwent; foreach $user (sort keys(%usertable)) { ($login, $name) = split(/:/,$usertable{$user}); print BUFFER qq|

  • $name\n|; } } # # Done. #