#!/opt/bin/perl5 # ######################################################################### # # # Program to collect all user home page URL's # # # ######################################################################### # # # Version 1.1.1 - Written 30.11.95 by Steffen Beyer # # # ######################################################################### # # # Copyright (C) 1995 by software design & management GmbH & Co. KG # # # ######################################################################### # # Some important default settings: # $version = 'version 1.1.1'; # $self = $0; $self =~ s!^.*/!!; # # Configure here the name and (absolute!) path of the target file: # $target = "/u/www/.www/privat/privat.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) { if (((($uid >= 10000) && ($uid < 20000)) || ($uid != $gid)) || ($uid == 5187)) { $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 "")) { $page = "$dir/.www/index.html"; if (-r "$page") { &isitnonstandard; if ($continue) { $usertable{$user} = "$login:$name"; } else { warn "$self: excluding page '$page'!\n"; } } } } } endpwent; foreach $user (sort keys(%usertable)) { ($login, $name) = split(/:/,$usertable{$user}); print BUFFER qq|

  • $name\n|; } } # sub isitnonstandard { $mode = $/; $/ = ''; # enter paragraph mode... $standard = 0; $continue = 1; unless (open(PAGE, "<$page")) { $continue = 0; } if ($continue) { if ((-s PAGE) < 300) { $standard++; } while (($continue != 0) && ($_ = )) { if (m!\s*Private\s+Page\s+von.+?!i) { $standard++; } elsif (m!\s*Was\s+wir\s+schon\s+immer\s+\S+?ber.+?wissen\s+wollten.*?!i) { $standard++; } elsif (m!dann\s+kann.*?s\s+ja\s+losgehen!i) { $standard++; } else { } if ($standard > 2) { $continue = 0; } } close(PAGE); } $/ = $mode; # restore initial mode... } # # Done. #