source: trunk/www/emit_portfile.php @ 28322

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

Relocate Id fields.

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