diff options
Diffstat (limited to 'check.php')
-rwxr-xr-x | check.php | 58 |
1 files changed, 53 insertions, 5 deletions
@@ -35,17 +35,18 @@ if ($cli) { <?php } $repos = [ + 'enterprise/10' => 'Enterprise Linux 10', 'enterprise/9' => 'Enterprise Linux 9', 'enterprise/8' => 'Enterprise Linux 8', - 'enterprise/7' => 'Enterprise Linux 7', 'fedora/41' => 'Fedora 41', 'fedora/40' => 'Fedora 40', 'fedora/39' => 'Fedora 39', ]; $subs = [ + 'modular', 'remi', + 'safe', 'test', - 'php56', ]; $archs = [ 'i386', @@ -102,9 +103,9 @@ $mirrors = [ 'https://remi.mivzakim.net/', // 2025-01-13 'http://repo1.ash.innoscale.net/remi/', // 2025-01-13 'https://bd.mirror.vanehost.com/Remi/', // 2025-01-17 + 'http://mirrors.ukfast.co.uk/sites/remi/', // 2025-01-28 / 2025-01-30 ]; $testing = [ - 'http://mirrors.ukfast.co.uk/sites/remi/', // 2025-01-28 'http://remi.conetix.com.au/', // 2025-01-22 'https://mirror.usi.edu/pub/remi/', // 2024-04-03 / 2025-01-29 ]; @@ -169,6 +170,31 @@ function getRepoTime($uri) { } return ERR_CONTENT; } + +function delta($ref, $loc) { + $d = ($ref > $loc ? $ref - $loc : $loc - $ref); + if ($d >= 60) { + $d /= 60; + if ($d >= 60) { + $d /= 60; + if ($d >= 24) { + $d /= 24; + $unit = 'day'; + } else { + $unit = 'hour'; + } + } else { + $unit = 'minute'; + } + } else { + $unit = 'second'; + } + if ($d > 1) { + $unit .= 's'; + } + return sprintf("%s :%3d %s ago", date('r', $loc), $d, $unit); +} + if (isset($_GET['mirror']) && isset($repos[$_GET['mirror']])) { $path = $_GET['mirror']; } else { @@ -184,6 +210,18 @@ if (isset($_GET['arch']) && in_array($_GET['arch'], $archs)) { } else { $arch = 'x86_64'; } +if (isset($_SERVER['argv'][1]) && isset($repos[$_SERVER['argv'][1]])) { + $path = $_SERVER['argv'][1]; + array_shift($_SERVER['argv']); +} +if (isset($_SERVER['argv'][1]) && in_array($_SERVER['argv'][1], $subs)) { + $repo = $_SERVER['argv'][1]; + array_shift($_SERVER['argv']); +} +if (isset($_SERVER['argv'][1]) && in_array($_SERVER['argv'][1], $archs)) { + $arch = $_SERVER['argv'][1]; + array_shift($_SERVER['argv']); +} $name = $repos[$path]; $full = "$path/$repo/$arch"; @@ -223,6 +261,16 @@ if ($ref) { $tocheck[] = $mirror; } } + foreach ($mirrors as $testing) { + if (preg_match('|'.$_SERVER['argv'][1].'|', $mirror)) { + $tocheck[] = $mirror; + } + } + foreach ($mirrors as $disabled) { + if (preg_match('|'.$_SERVER['argv'][1].'|', $mirror)) { + $tocheck[] = $mirror; + } + } if (empty($tocheck)) { $tocheck[] = $_SERVER['argv'][1]; } @@ -230,7 +278,7 @@ if ($ref) { } else { $tocheck = array_merge($mirrors, $testing); } - printf(($cli ? "Check %d mirror(s) of %s (%s)\n" : "<h3>%s - %s</h3>\n"), count($tocheck), $name, date('r', $ref)); + printf(($cli ? "Check %d mirror(s) of %s (%s, %s)\n" : "<h3>%s - %s</h3>\n"), count($tocheck), $name, $full, date('r', $ref)); foreach ($tocheck as $mirror) { if ($cli) { $pid = pcntl_fork(); @@ -249,7 +297,7 @@ if ($ref) { printf("%50.50s : Ok\n", $mirror); exit(0); } else if ($loc) { - printf("%50.50s : %s\n", $mirror, date('r', $loc)); + printf("%50.50s : %s\n", $mirror, delta($ref, $loc)); exit(1); } else { printf("%50.50s : N/A\n", $mirror); |