chiark / gitweb /
stuff from chiark:/usr/local/src/misc/ (as found)
[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>list of users exporting CVS repositories via cvsweb from chiark</h1>
12 <ul>
13 END
14
15 open UL, "/etc/userlist" or die $!;
16 while (<UL>) {
17     next if m/^\#/ or !m/\S/;
18     chomp($user= $_);
19     next unless readlink "/home/$user/public-cgi/cvsweb"
20         eq '/usr/local/lib/cvsweb';
21     $hd= 0;
22     $pc= "/home/$user/public-CVS/";
23     next unless opendir D, $pc;
24     while (defined($mod= readdir D)) {
25         next unless -d "$pc/$mod";
26         next if $mod =~ m/^\./;
27         if (!$hd) {
28             print "<li><A href=\"/ucgi/~$user/cvsweb\">$user</A>" or die $!;
29             print " (<A href=\"/~$user/\">homepage</A>)" or die $!
30                 if -d "/home/$user/public-html";
31             print ":" or die $!;
32             $hd= 1;
33         } else {
34             print "," or die $!;
35         }
36         print " <A href=\"/ucgi/~$user/cvsweb/$mod/\">$mod</A>" or die $!;
37     }
38     next unless $hd;
39     print "</li>\n" or die $!;
40 }
41
42 close UL or die $!;
43
44 print <<END or die $!;
45 </ul>
46 <hr>
47 <ADDRESS>
48   maintained by
49   <A HREF="mailto:$ENV{SERVER_ADMIN}">$ENV{SERVER_ADMIN}</A>;
50   <A href="/">chiark home page</A>
51 </ADDRESS>
52 </body>
53 END
54
55 exit 0