diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-10 10:46:33 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-10 10:46:33 +0200 |
| commit | 072b36bf0e5a199fe038adffcadd99bbc4ab1dbc (patch) | |
| tree | f77d3f42c78aceeddf286fdc21ef40a65c3df10e /releng/airootfs/usr/local/bin/chaotic-rankmirrors | |
| parent | d527904cd222b8aecaec496ca2869e9172e74ebc (diff) | |
| download | RaveOS-build-iso-072b36bf0e5a199fe038adffcadd99bbc4ab1dbc.tar.gz RaveOS-build-iso-072b36bf0e5a199fe038adffcadd99bbc4ab1dbc.zip | |
raveos update
Diffstat (limited to 'releng/airootfs/usr/local/bin/chaotic-rankmirrors')
| -rwxr-xr-x | releng/airootfs/usr/local/bin/chaotic-rankmirrors | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/releng/airootfs/usr/local/bin/chaotic-rankmirrors b/releng/airootfs/usr/local/bin/chaotic-rankmirrors new file mode 100755 index 0000000..71c256e --- /dev/null +++ b/releng/airootfs/usr/local/bin/chaotic-rankmirrors @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +MIRRORLIST="/etc/pacman.d/chaotic-mirrorlist" +TIMEOUT=6 +TEST_PATH="chaotic-aur/x86_64/chaotic-aur.db" +TOP_N=5 + +MIRRORS=( + "de-mirror" "cdn-mirror" "geo-mirror" "pl-mirror" + "nl-mirror" "ch-mirror" "se-mirror" "fr-mirror" + "gb-mirror" "de-2-mirror" "nl-1-mirror" "pl-1-mirror" + "se-1-mirror" "ch-1-mirror" +) + +tmp=$(mktemp) + +echo "==> Ranking Chaotic-AUR mirrors..." + +for m in "${MIRRORS[@]}"; do + url="https://${m}.chaotic.cx/${TEST_PATH}" + t=$(curl -o /dev/null -s -w "%{time_starttransfer}" \ + --max-time "$TIMEOUT" --connect-timeout 3 \ + -r 0-1023 "$url" 2>/dev/null) + rc=$? + if [ "$rc" -eq 0 ] && [[ "$t" != "0.000000" ]] && [[ -n "$t" ]]; then + echo "${t} ${m}" >> "$tmp" + echo " OK ${t}s ${m}" + else + echo " FAIL ${m}" + fi +done + +if [ ! -s "$tmp" ]; then + echo "==> WARNING: no mirrors responded, keeping original mirrorlist" + rm -f "$tmp" + exit 0 +fi + +mapfile -t top < <(sort -n "$tmp" | head -n "$TOP_N") +rm -f "$tmp" + +cp "$MIRRORLIST" "${MIRRORLIST}.bak" 2>/dev/null || true + +{ + echo "# Chaotic-AUR mirrorlist" + echo "# Generated by chaotic-rankmirrors on $(date)" + echo "" + for e in "${top[@]}"; do + m="${e#* }" + echo "Server = https://${m}.chaotic.cx/\$repo/\$arch" + done +} > "$MIRRORLIST" + +echo "==> Done. Updated mirrorlist with ${#top[@]} fastest mirrors." |