diff options
author | Erich Eckner <git@eckner.net> | 2020-05-12 11:09:31 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2020-05-12 11:09:31 +0200 |
commit | 91d2a184f9c79ab9cb0635bb0acc8f47d57f3e74 (patch) | |
tree | 819cbd252ef8524f4c8177606b31a9731e9c1a0e | |
parent | 4835f9c43a68c790116645a26fc85892f11a4055 (diff) | |
download | arch-mirror-91d2a184f9c79ab9cb0635bb0acc8f47d57f3e74.tar.xz |
arch-mirror: fetch_archlinux_mirrors() ausgelagert
-rwxr-xr-x | arch-mirror | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/arch-mirror b/arch-mirror index 95b2b14..a2d9dfb 100755 --- a/arch-mirror +++ b/arch-mirror @@ -45,6 +45,34 @@ resolve_complete_mirror() { done } +fetch_archlinux_mirrors() { + curl -Ss 'https://www.archlinux.org/mirrors/status/json/' \ + | sed -n ' + s@^[^[]*"urls": \[@@ + T + s@][^[]*$@@ + T + p + ' \ + | sed ' + s/}, {/},\n{/g + ' \ + | grep -F '"protocol": "rsync"' \ + | { + date -u +'%FT%TZ CUTCUTCUT' -d@$(($(date +%s)-3600)) + sed ' + s@^.*, "last_sync": "\([^"]\+\)",.*$@\1 \0@ + ' + } \ + | sort -k1r,1 \ + | sed ' + / CUTCUTCUT/,$ d + s@^\S\+ {"url": "\([^"]\+\)".*$@/archlinux/#\1@ + t + d + ' +} + fetch_lastsync() { local tmp_file=$(mktemp) while read -r proximity url; do @@ -85,32 +113,7 @@ fetch_lastsync() { far_mirrors=( $( resolve_complete_mirror 'rsync://jeti100.ioq.uni-jena.de/archlinux-all/' - - curl -Ss 'https://www.archlinux.org/mirrors/status/json/' \ - | sed -n ' - s@^[^[]*"urls": \[@@ - T - s@][^[]*$@@ - T - p - ' \ - | sed ' - s/}, {/},\n{/g - ' \ - | grep -F '"protocol": "rsync"' \ - | { - date -u +'%FT%TZ CUTCUTCUT' -d@$(($(date +%s)-3600)) - sed ' - s@^.*, "last_sync": "\([^"]\+\)",.*$@\1 \0@ - ' - } \ - | sort -k1r,1 \ - | sed ' - / CUTCUTCUT/,$ d - s@^\S\+ {"url": "\([^"]\+\)".*$@/archlinux/#\1@ - t - d - ' \ + fetch_archlinux_mirrors \ | shuf -n10 ) '/archlinux/#rsync://ftp.gwdg.de/pub/linux/archlinux/' |