source: trunk/www/emit_portfile.php @ 28303

Last change on this file since 28303 was 28303, checked in by jmpp@…, 13 years ago

Major but minor commit to the www svn space: reorder the sources a bit to have a cleaner
layout while bringing the content up to speed with current practices and reality, otherwise
sticking to the same website we had back in OpenDarwin days.

The one big thing about this commit, though, is that the old ports.php page is again operational,
as shown in my local server: http://apollo.homeunix.net/macports/ports.php. Woot!

Further discussion of what to do with these sources is needed, however, so I'm not gonna push to
host them anywhere for the time being until we have a clearer map of how we should move forward
wrt our web presence.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.3 KB
Line 
1<?php
2
3$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
4include_once("$DOCUMENT_ROOT/macports/includes/email.inc");
5
6$portname = basename(dirname($_SERVER['PATH_INFO']));
7?>
8
9<html>
10        <head>
11                <title><?=$portname?> Portfile</title>
12        </head>
13        <body>
14
15<?php
16
17//      Read the file as an array of lines
18$target = "${DOCUMENT_ROOT}${_SERVER['PATH_INFO']}";
19$lines = @file($target);
20if ($lines)
21{
22        print "<pre>";
23        foreach ($lines as $line)
24        {
25                $out = $line;
26
27                //      Replace tabs with spaces to maintain proper spacing
28                $tabs = 4;
29                $pos = 0;
30                $out = '';
31                for ($i = 0; $i < strlen($line); ++$i)
32                {
33                        $char = $line{$i};
34                        switch ($char)
35                        {
36                        case "\t":
37                                $cnt = $tabs - ($pos % $tabs);
38                                $out .= str_repeat(" ", $cnt);
39                                $pos += $cnt;
40                                break;
41                        default:
42                                $out .= $char;
43                                ++$pos;
44                                break;
45                        }
46                }
47
48                //      Clean up any html-unfriendly characters
49                $out = htmlspecialchars($out);
50
51                //      Special handling for email addresses
52                if (preg_match('/\s*(maintainers\s+)(.*)/i', $out, $matches))
53                {
54                        $func = $matches[1];
55                        $params = $matches[2];
56                       
57                        $addresses = preg_split('/\s+/', $params);
58                       
59                        foreach ($addresses as $addr)
60                                $emails[] = obfuscate_email($addr);
61                       
62                        $out = $func.(count($emails) ? join(' ', $emails) : '')."\n";
63                }
64               
65                //      Output line
66                print $out;
67        }
68        print "</pre>";
69}
70else
71        print "Couldn't open file $target";
72?>
73
74        </body>
75</html>
Note: See TracBrowser for help on using the repository browser.