2 const INCLUDED
= __FILE__
;
4 require_once "index.php";
7 $res->addHeader("Link", "<".dirname((new http\Env\Url
)->path
)."concise/css/concise.min.css>; rel=preload; as=style");
13 <meta charset
="utf-8">
14 <title
>Replicator
</title
>
15 <link rel
="stylesheet" href
="concise/css/concise.min.css">
16 <link href
="//fonts.googleapis.com/css?family=Droid+Sans" rel
="stylesheet" type
="text/css">
17 <meta name
="viewport" content
="width=device-width, initial-scale=1">
35 box
-shadow
: 0px
0px
.8em
.4em
#89a;
42 .header h1 a
, .footer a
:hover
{
43 text
-decoration
: none
;
46 text
-decoration
: underline
;
49 /* normalize browser difference */
52 .header h1 a
, .footer
, .footer a
{
54 text
-shadow
: grey
0 0 .1em
;
59 text
-shadow
: white
0 0 .2em
;
62 list-style
-type
: circle
;
71 padding
: 0 1.5em
1.5em
1em
;
74 display
: inline
-block
;
82 @media
(max
-width
: 80em
) {
88 .old
-version
, #new-toggle {
96 <h1
class="container">
97 <a href
="?">Replicator
</a
><br
>
98 <small
>Replicating PECL releases
as pharext packages since
2015</small
>
100 <a href
="https://github.com/m6w6/replicator"><img style
="position: absolute; top: 0; right: 0; border: 0;" src
="https://camo.githubusercontent.com/652c5b9acfaddf3a9c326fa6bde407b87f7be0f4/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6f72616e67655f6666373630302e706e67" alt
="Fork me on GitHub" data
-canonical
-src
="https://s3.amazonaws.com/github/ribbons/forkme_right_orange_ff7600.png"></a
>
103 <div
class="container">
105 <?php
if (!empty($package)) : $versions = package_versions($package); ?
>
107 <h2
><?
= htmlspecialchars($package) ?
></h2
>
108 <table
class="table table-full versions">
111 <th
class="text-left" colspan
="2">Package
</th
>
112 <th
class="text-left" colspan
="<?= count(SIGS) ?>">Signatures
</th
>
113 <th
class="text-left">Date
</th
>
114 <th
class="text-right">Pharext
</th
>
119 <?php
$i = 0; foreach (array_reverse($versions) as $version => $phars) : ++
$i; ?
>
120 <?php
foreach (array_map("array_values", $phars) as $ext => list($phar, $date, $size, $pharext)) : ?
>
121 <tr
<?php
if ($i > NCURRENT
) : ?
>class="old-version"<?php
endif; ?
> <?php
if ($i === NCURRENT
) : ?
>id
="old"<?php
endif; ?
>>
122 <?php
if (empty($ext)) : ?
>
123 <td
class="text-left" rowspan
="<?= count($phars) ?>">
124 <?
= htmlspecialchars($package) ?
>
125 <?
= htmlspecialchars($version) ?
>
129 <td
class="text-left">
130 ⤋ <a href="<?= htmlspecialchars($phar) ?>"
131 download
>phar
<?
= htmlspecialchars($ext) ?
></a
> 
;<small
>(<?
= human_size($size) ?
>)</small
><br
>
133 <?php
foreach (SIGS
as $typ => $sig) : ?
>
135 # <a href="<?= sigof($phar, $sig) ?>" download><?= "$typ.$sig" ?></a>
138 <td
class="text-left">
139 <?
= human_date($date); ?
>
142 <td
class="text-right <?= version_compare($pharext, "3.0.1", "<") ? "color
-red
":"" ?>">
151 <?php
if ($i >= 3) : ?
>
153 <a id
="old-toggle" href
="#old" onclick
="toggleOldVersions(this)">Show
154 <?
=count($versions)-NCURRENT?
> older
version(s
) »
;</a
>
155 <a id
="new-toggle" href
="#" onclick
="toggleOldVersions(this)">Show
156 less versions
«
;</a
>
161 <h2
>Available Packages
</h2
>
162 <ul
class="list-inline">
163 <?php
foreach (array_map("htmlspecialchars", $packages) as $index => $pkg) : ?
>
164 <?php
$next = strtolower($pkg{0}); ?
>
165 <?php
if (isset($prev) && $next != $prev) : ?
>
168 <ul
class="list-inline">
171 <li
><a href
="?<?= $pkg ?>"><?
= $pkg ?
></a
></li
>
172 <?php
$prev = $next; ?
>
179 <?php
if (empty($package)) : ?
>
181 <?php
else : list($phar) = array_values(current(end($versions))); ?
>
182 <h3
>Download latest version
and signatures
:</h3
>
183 <div
class="column-16">
184 <pre
class="code fit-code"><code
>
186 -O https
://replicator.pharext.org/<?= htmlspecialchars($phar) ?><?php foreach (SIGS as $sig) : ?> \
187 -O https
://replicator.pharext.org/<?= htmlspecialchars(sigof($phar, $sig)) ?><?php endforeach; ?></code></pre>
191 <h3
>Verify with a
public key
:</h3
>
194 <div
class="column-8">
195 <h4
>RSA
<small
><a href
="replicator.pub" download
>replicator
.pub
</a
></small
></h4
>
196 <?php
if (!empty($phar)) : ?
>
197 <pre
class="code"><code
>
198 curl
-sSO https
://replicator.pharext.org/replicator.pub
201 -verify replicator
.pub \
202 -signature
<?
= htmlspecialchars(basename($phar)).".sig" ?
> \
203 <?
= htmlspecialchars(basename($phar)) ?
></code
></pre
>
205 <pre
class="publickey"><?php
readfile("./replicator.pub") ?
></pre
>
207 <div
class="column-8">
208 <h4
>OpenPGP
<small
><a href
="4093AEF6.pub" download
>4093AEF6
.pub
</a
></small
></h4
>
209 <?php
if (!empty($phar)) : ?
>
210 <pre
class="code"><code
>
211 curl
-sSO https
://replicator.pharext.org/4093AEF6.pub
213 gpg
--import
4093AEF6
.pub
215 gpg
--verify
<?
= htmlspecialchars(basename($phar)).".asc" ?
> \
216 <?
= htmlspecialchars(basename($phar)) ?
></code
></pre
>
218 <pre
class="publickey"><?php
readfile("./4093AEF6.pub") ?
></pre
>
224 ©
; 2015 <a href
="https://m6w6.name">m6w6
</a
>, Michael Wallner
&mdash
; Powered by
<a href
="//github.com/m6w6/pharext">pharext
226 require_once "../vendor/autoload.php";
227 printf("v%s\n", pharext\Metadata
::version());
232 <script type
="text/javascript">
233 function toggleOldVersions(a
) {
234 var nodes
, row_style
;
236 if (a
.hash
.substring(1) === "old") {
237 row_style
= "table-row";
238 document
.getElementById("old-toggle").style
.display
= "none";
239 document
.getElementById("new-toggle").style
.display
= "inline";
242 document
.getElementById("old-toggle").style
.display
= "inline";
243 document
.getElementById("new-toggle").style
.display
= "none";
246 nodes
= document
.querySelectorAll("table.versions>tbody>tr.old-version");
248 for (var i
= 0; i
< nodes
.length
; ++i
) {
249 nodes
.item(i
).style
.display
= row_style
;