diff --git a/data/internal/Makefile b/data/internal/Makefile index 40c842dbbb..ff1e63a157 100644 --- a/data/internal/Makefile +++ b/data/internal/Makefile @@ -1,5 +1,11 @@ -# $Id: Makefile,v 1.1 1998-07-31 09:18:25 wosch Exp $ +# $Id: Makefile,v 1.2 1998-07-31 09:45:51 wosch Exp $ DOCS= photos.sgml +homepage.inc: + perl homepage.pl > ${.TARGET} + +homepage.sgml: homepage.inc +CLEANFILES+= homepage.inc + .include "../web.mk" diff --git a/data/internal/homepage.pl b/data/internal/homepage.pl new file mode 100644 index 0000000000..899e731351 --- /dev/null +++ b/data/internal/homepage.pl @@ -0,0 +1,50 @@ +#!/usr/bin/perl + +$passwd = '/etc/passwd'; +$homepagedir = 'public_html'; +@index = ('index.html', 'index.cgi'); +$noindex = '.noindex'; + +open(P, $passwd) || die "open $passwd: $!\n"; +undef @pages; +while(
) { + ($login,$passwd,$uid,$gid,$gcos,$home,$shell) = split(/:/); + + # cleanup gecos + $gcos =~ s/,+$//; + + # disable daemons + next if $uid <= 100; + next if $login eq 'nobody'; + next if $shell =~ ~ m%/(pppd|sliplogin|nologin|nonexistent)$%; + + # uucp accounts + next if $login =~ /^U/; + + $p = $home . '/' . $homepagedir; + + # user don't want be on the index + next if -f "$p/$noindex"; + + foreach (@index) { + if (-f "$p/$_" && -r "$p/$_") { + if ($_ !~ /\.cgi$/ || -x "$p/$_") { + push(@pages, $gcos . ':' . $login); + last; + } + } + } +} + +close P; +if ($#pages < 0) { + die "No users found!\n"; +} + +foreach (sort @pages) { + ($gcos, $login) = split(/:/); + ($firstgecos, @gecos) = split(/,/, $gcos); + print qq{