X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=public%2Findex.php;fp=public%2Findex.php;h=b403d19733946259f0a6f42c56908830c48d749c;hb=8aa128688b9b703660100fe32489155dff732577;hp=72a97f62542632c2f024f43c8c2999339859cbfb;hpb=89b75ec21049892736dbcf101b453cf2c69bb236;p=pharext%2Freplicator.pharext.org diff --git a/public/index.php b/public/index.php index 72a97f6..b403d19 100644 --- a/public/index.php +++ b/public/index.php @@ -35,25 +35,34 @@ function sigof($phar, $typ) { function package_versions($package) { $versions = []; - foreach (glob("phars/$package/*.ext.phar*") as $phar) { - list($name, $enc) = explode(".ext.phar", basename($phar)); + foreach (glob("phars/$package/*.ext.phar") as $phar) { + $name = basename($phar, ".ext.phar"); $data = new Phar($phar); $meta = $data->getMetadata(); + unset($data); + if ($meta) { $release = $meta["release"]; } else { $release = substr($name, strlen($package)+1); } - foreach (SIGS as $sigtyp => $sigext) { - if (file_exists($sigdat = sigof($phar, $sigext))) { - $sigs[$sigtyp] = $sigdat; + foreach (["", ".gz", ".bz2"] as $enc) { + $file = $phar . $enc; + if (!is_file($file)) { + continue; + } + + foreach (SIGS as $sigtyp => $sigext) { + if (file_exists($sigdat = sigof($file, $sigext))) { + $sigs[$sigtyp] = $sigdat; + } } + $size = filesize($file); + $date = isset($meta["date"]) ? strtotime($meta["date"]) : filemtime($file); + $pharext = isset($meta["version"]) ? $meta["version"] : "2.0.1"; + $versions[$release][$enc] = ["phar" => $file] + compact("date", "size", "pharext", "sigs"); } - $size = filesize($phar); - $date = isset($meta["date"]) ? strtotime($meta["date"]) : filemtime($phar); - $pharext = isset($meta["version"]) ? $meta["version"] : "2.0.1"; - $versions[$release][$enc] = compact("phar", "date", "size", "pharext", "sigs"); uksort($versions[$release], function($a, $b) { $al = strlen($a); $bl = strlen($b);