0c8868ed1f94124ca58385f49b7befea4610eea2
[m6w6/replicator] / public / index.php
1 <!doctype html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title>Replicator</title>
6 <link rel="stylesheet" href="concise/css/concise.min.css">
7 <link href="//fonts.googleapis.com/css?family=Droid+Sans" rel="stylesheet" type="text/css">
8 <meta name="viewport" content="width=device-width, initial-scale=1">
9 <style>
10 body {
11 }
12 .header {
13 background: rgba(0,128,196,0.5);
14 padding: 1em 0;
15 }
16 .header h1 {
17 font-weight: bold;
18 }
19 .header h1 a {
20 text-decoration: none;
21 }
22 .header h1 big {
23 color: #fdfdfd;
24 text-shadow: grey 0 0 .1em;
25 }
26 .header h1 small {
27 color: #666;
28 text-shadow: white 0 0 .2em;
29 }
30 li {
31 list-style-type: circle;
32 }
33 </style>
34 </head>
35 <body>
36 <div class="header">
37 <header>
38 <h1 class="container">
39 <a href="?"><big>Replicator</big></a><br>
40 <small>Replicating PECL releases as pharext packages since 2015</small>
41 </h1>
42 </header>
43 </div>
44 <div class="container">
45 <?php $packages = array_map("basename", glob("phars/*")); ?>
46
47 <?php if ($_SERVER["QUERY_STRING"] && in_array($_SERVER["QUERY_STRING"], $packages, true)) : ?>
48
49 <h2><?= $package = $_SERVER["QUERY_STRING"]; ?></h2>
50 <table class="table table-full">
51 <thead>
52 <tr>
53 <th class="text-left">Package</th>
54 <th class="text-left">Date</th>
55 <th class="text-right">Size</th>
56 </tr>
57 </thead>
58 <tbody>
59 <?php foreach (array_reverse(glob("phars/$package/*.ext.phar*")) as $phar) : ?>
60 <tr>
61 <td class="text-left"><a href="<?= htmlspecialchars($phar) ?>"
62 ><?= htmlspecialchars(basename($phar)) ?></a>
63 </td>
64 <td class="text-left">
65 <?php
66
67 $time = time();
68 $dsec = 86400;
69 $lmod = filemtime($phar);
70 $days = [1 => "today", "yesterday"];
71 do {
72 for ($i = 1; $i < 7; ++$i) {
73 if ($lmod > $time - $dsec * $i) {
74 switch ($i) {
75 case 1:
76 echo "today";
77 break 3;
78 case 2:
79 echo "yesterday";
80 break 3;
81 default:
82 echo "$i days ago";
83 break 3;
84 }
85 }
86 }
87 echo date("Y-m-d", $lmod);
88 } while (false);
89
90 ?>
91 </td>
92 <td class="text-right">
93 <?php
94
95 $u = ["Bytes", "KB", "MB"];
96 $s = filesize($phar);
97 $l = floor(log10($s));
98 printf("%1.1F %s\n", $s/pow(10,$l-($l%3)), $u[$l/3]);
99
100 ?>
101 </td>
102 </tr>
103 <?php endforeach; ?>
104 </tbody>
105 </table>
106 <?php else: ?>
107
108 <h2>Available Packages</h2>
109 <ul class="list-inline">
110 <?php foreach (array_map("htmlspecialchars", $packages) as $index => $package) : ?>
111 <?php $next = strtolower($package{0}); ?>
112 <?php if (isset($prev) && $next != $prev) : ?>
113
114 </ul>
115 <ul class="list-inline">
116 <?php endif; ?>
117
118 <li><a href="?<?= $package ?>"><?= $package ?></a></li>
119 <?php $prev = $next; ?>
120 <?php endforeach; ?>
121
122 </ul>
123 <?php endif; ?>
124
125 </div>
126 </body>
127 </html>