summaryrefslogtreecommitdiffstats
path: root/check.php
diff options
context:
space:
mode:
Diffstat (limited to 'check.php')
-rwxr-xr-xcheck.php78
1 files changed, 64 insertions, 14 deletions
diff --git a/check.php b/check.php
index 60574f5e..31f4d856 100755
--- a/check.php
+++ b/check.php
@@ -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',
@@ -70,11 +71,9 @@ $mirrors = [
'https://remi.mirror.karneval.cz/',
'https://mirror.netsite.dk/remi/',
'http://mirror.team-cymru.com/remi/',
- 'http://mirrors.ukfast.co.uk/sites/remi/',
'https://mirror.netweaver.uk/remi/',
'http://ftp.riken.jp/Linux/remi/',
'https://mir01.syntis.net/remirepo/',
- 'http://mirror.hoster.kz/remi/',
'http://remirepo.reloumirrors.net/',
'https://mirror.pit.teraswitch.com/remi/',
'http://remi.mirror.liteserver.nl/',
@@ -90,10 +89,7 @@ $mirrors = [
'https://mirror.docker.ru/remi/',
'https://repo.extreme-ix.org/remi/',
'https://mirror.mangohost.net/remi/',
- 'https://bd.mirror.vanehost.com/Remi/',
- 'https://repo1.vetta.net.nz/remi/',
- 'https://cdn.fjordos.no/remi/',
- 'https://mirror.fjordos.no/remi/',
+ 'https://mirror.fjordos.com/remi/',
'https://muug.ca/mirror/remi/',
'https://mirror.netzwerge.de/remi/',
'https://pit.mirror.jurassicinnovations.com/remi/',
@@ -104,12 +100,16 @@ $mirrors = [
'http://mirrors.bytes.ua/remi/', // 2025-01-13
'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://remi.conetix.com.au/', // 2025-01-22
+ 'https://mirror.usi.edu/pub/remi/', // 2024-04-03 / 2025-01-29
];
$disabled = [
- 'http://remi.conetix.com.au/', // 2025-01-06
- 'https://mirror.usi.edu/pub/remi/', // 2024-04-03
+ 'http://mirror.hoster.kz/remi/',
+ 'https://repo1.vetta.net.nz/remi/', // 2025-01-17 (too slow)
'http://mirror.xeonbd.com/remi/',
'https://mirror.telkomuniversity.ac.id/remi/',
'http://mirror.uta.edu.ec/remi/',
@@ -156,7 +156,7 @@ $deprecated = [
function getRepoTime($uri) {
$ctx = stream_context_create([
'http' => [
- 'timeout' => 4,
+ 'timeout' => 7,
]
]);
$txt = @file_get_contents($uri . '/repodata/repomd.xml', false, $ctx);
@@ -169,6 +169,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 = (int)($d / 60);
+ if ($d >= 24) {
+ $d = (int)($d / 24);
+ $unit = 'DAY';
+ } else {
+ $unit = 'hour';
+ }
+ } else {
+ $unit = 'minute';
+ }
+ } else {
+ $unit = 'second';
+ }
+ if ($d > 1) {
+ $unit .= 's';
+ }
+ return sprintf("%s :%3d %s", date('r', $loc), $d, $unit);
+}
+
if (isset($_GET['mirror']) && isset($repos[$_GET['mirror']])) {
$path = $_GET['mirror'];
} else {
@@ -184,6 +209,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 +260,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 +277,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 +296,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);
@@ -297,7 +344,10 @@ if ($ref) {
unset($pids[$pid]);
}
}
- if ($nb) printf("%3d mirrors checked,\n%3d are OK\n%3d are stalled\n%3d are KO.\n", $nb, $ok, $lack, $nb-$ok-$lack);
+ if ($nb) {
+ printf("%3d mirrors checked on %s,\n%3d are OK\t(%d%%)\n%3d are late\t(%d%%)\n%3d are KO.\n",
+ $nb, date("r"), $ok, $ok*100/$nb, $lack, $lack*100/$nb, $nb-$ok-$lack);
+ }
} else {
echo "</ul>\n";
}