chiark / gitweb /
found on davenant in /usr/local/src/misc
[chiark-utils.git] / scripts / cvsweb-list
1 #!/usr/bin/perl
2
3 print <<END or die $!;
4 Content-Type: text/html
5
6 <head>
7 <title>chiark public CVS</title>
8 <link rev="made" href="mailto:webmaster\@chiark.greenend.org.uk">
9 </head>
10 <body>
11 <h1><img src="/chiark/icon90.gif" border="0" width="128" height="64"
12 alt=""> chiark users' public CVS</h1>
13 <ul>
14 END
15
16 open UL, "/etc/userlist" or die $!;
17 while (<UL>) {
18     next if m/^\#/ or !m/\S/;
19     chomp($user= $_);
20     next unless readlink "/home/$user/public-cgi/cvsweb"
21         eq '/usr/local/lib/cvsweb';
22     $hd= 0;
23     $pc= "/home/$user/public-CVS/";
24     next unless opendir D, $pc;
25     while (defined($mod= readdir D)) {
26         next unless -d "$pc/$mod";
27         next if $mod =~ m/^\./;
28         if (!$hd) {
29             print "<li><A href=\"/ucgi/~$user/cvsweb\">$user</A>" or die $!;
30             print " (<A href=\"/~$user/\">homepage</A>)" or die $!
31                 if -d "/home/$user/public-html";
32             print ":" or die $!;
33             $hd= 1;
34         } else {
35             print "," or die $!;
36         }
37         print " <A href=\"/ucgi/~$user/cvsweb/$mod/\">$mod</A>" or die $!;
38     }
39     next unless $hd;
40     print "</li>\n" or die $!;
41 }
42
43 close UL or die $!;
44
45 print <<END or die $!;
46 </ul>
47 <hr>
48 <ADDRESS>
49   maintained by
50   <A HREF="mailto:$ENV{SERVER_ADMIN}">$ENV{SERVER_ADMIN}</A>;
51   <A href="/">chiark home page</A>
52 </ADDRESS>
53 </body>
54 END
55
56 exit 0