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 {
91 .package
-description
{
92 white
-space
: pre
-line
;
99 <h1
class="container">
100 <a href
="?">Replicator
</a
><br
>
101 <small
>Replicating PECL releases
as pharext packages since
2015</small
>
103 <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
>
106 <div
class="container">
108 <?php
if (!empty($package)) : $versions = package_versions($package); $info = package_info($package); ?
>
110 <h2
><?
= htmlspecialchars($package) ?
></h2
>
111 <?php
if ($info) : ?
>
112 <h3
><?
= htmlspecialchars($info["title"]) ?
><br
>
113 <small
>License
: <?
= htmlspecialchars($info["license"]) ?
></small
></h3
>
114 <p
class="package-description"><?
= htmlspecialchars($info["description"]) ?
></p
>
116 <table
class="table table-full versions">
119 <th
class="text-left" colspan
="2">Package
</th
>
120 <th
class="text-left" colspan
="<?= count(SIGS) ?>">Signatures
</th
>
121 <th
class="text-left">Date
</th
>
122 <th
class="text-right">Pharext
</th
>
127 <?php
$i = 0; foreach (array_reverse($versions) as $version => $phars) : ++
$i; ?
>
128 <?php
foreach (array_map("array_values", $phars) as $ext => list($phar, $date, $size, $pharext)) : ?
>
129 <tr
<?php
if ($i > NCURRENT
) : ?
>class="old-version"<?php
endif; ?
> <?php
if ($i === NCURRENT
) : ?
>id
="old"<?php
endif; ?
>>
130 <?php
if (empty($ext)) : ?
>
131 <td
class="text-left" rowspan
="<?= count($phars) ?>">
132 <?
= htmlspecialchars($package) ?
>
133 <?
= htmlspecialchars($version) ?
>
137 <td
class="text-left">
138 ⤋ <a href="<?= htmlspecialchars($phar) ?>"
139 download
>phar
<?
= htmlspecialchars($ext) ?
></a
> 
;<small
>(<?
= human_size($size) ?
>)</small
><br
>
141 <?php
foreach (SIGS
as $typ => $sig) : ?
>
143 # <a href="<?= sigof($phar, $sig) ?>" download><?= "$typ.$sig" ?></a>
146 <td
class="text-left">
147 <?
= human_date($date); ?
>
150 <td
class="text-right <?= version_compare($pharext, "3.0.1", "<") ? "color
-red
":"" ?>">
159 <?php
if ($i >= 3) : ?
>
161 <a id
="old-toggle" href
="#old" onclick
="toggleOldVersions(this)">Show
162 <?
=count($versions)-NCURRENT?
> older
version(s
) »
;</a
>
163 <a id
="new-toggle" href
="#" onclick
="toggleOldVersions(this)">Show
164 less versions
«
;</a
>
169 <h2
>Available Packages
</h2
>
170 <ul
class="list-inline">
171 <?php
foreach (array_map("htmlspecialchars", $packages) as $index => $pkg) : ?
>
172 <?php
$next = strtolower($pkg{0}); ?
>
173 <?php
if (isset($prev) && $next != $prev) : ?
>
176 <ul
class="list-inline">
179 <li
><a href
="?<?= $pkg ?>"><?
= $pkg ?
></a
></li
>
180 <?php
$prev = $next; ?
>
187 <?php
if (empty($package)) : ?
>
189 <?php
else : list($phar) = array_values(current(end($versions))); ?
>
190 <h3
>Download latest version
and signatures
:</h3
>
191 <div
class="column-16">
192 <pre
class="code fit-code"><code
>
194 -O https
://replicator.pharext.org/<?= htmlspecialchars($phar) ?><?php foreach (SIGS as $sig) : ?> \
195 -O https
://replicator.pharext.org/<?= htmlspecialchars(sigof($phar, $sig)) ?><?php endforeach; ?></code></pre>
199 <h3
>Verify with a
public key
:</h3
>
202 <div
class="column-8">
203 <h4
>RSA
<small
><a href
="replicator.pub" download
>replicator
.pub
</a
></small
></h4
>
204 <?php
if (!empty($phar)) : ?
>
205 <pre
class="code"><code
>
206 curl
-sSO https
://replicator.pharext.org/replicator.pub
209 -verify replicator
.pub \
210 -signature
<?
= htmlspecialchars(basename($phar)).".sig" ?
> \
211 <?
= htmlspecialchars(basename($phar)) ?
></code
></pre
>
213 <pre
class="publickey"><?php
readfile("./replicator.pub") ?
></pre
>
215 <div
class="column-8">
216 <h4
>OpenPGP
<small
><a href
="4093AEF6.pub" download
>4093AEF6
.pub
</a
></small
></h4
>
217 <?php
if (!empty($phar)) : ?
>
218 <pre
class="code"><code
>
219 curl
-sSO https
://replicator.pharext.org/4093AEF6.pub
221 gpg
--import
4093AEF6
.pub
223 gpg
--verify
<?
= htmlspecialchars(basename($phar)).".asc" ?
> \
224 <?
= htmlspecialchars(basename($phar)) ?
></code
></pre
>
226 <pre
class="publickey"><?php
readfile("./4093AEF6.pub") ?
></pre
>
232 ©
; 2015 <a href
="https://m6w6.name">m6w6
</a
>, Michael Wallner
&mdash
; Powered by
<a href
="//github.com/m6w6/pharext">pharext
234 require_once "../vendor/autoload.php";
235 printf("v%s\n", pharext\Metadata
::version());
240 <script type
="text/javascript">
241 function toggleOldVersions(a
) {
242 var nodes
, row_style
;
244 if (a
.hash
.substring(1) === "old") {
245 row_style
= "table-row";
246 document
.getElementById("old-toggle").style
.display
= "none";
247 document
.getElementById("new-toggle").style
.display
= "inline";
250 document
.getElementById("old-toggle").style
.display
= "inline";
251 document
.getElementById("new-toggle").style
.display
= "none";
254 nodes
= document
.querySelectorAll("table.versions>tbody>tr.old-version");
256 for (var i
= 0; i
< nodes
.length
; ++i
) {
257 nodes
.item(i
).style
.display
= row_style
;