summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2020-05-12 11:09:31 +0200
committerErich Eckner <git@eckner.net>2020-05-12 11:09:31 +0200
commit91d2a184f9c79ab9cb0635bb0acc8f47d57f3e74 (patch)
tree819cbd252ef8524f4c8177606b31a9731e9c1a0e
parent4835f9c43a68c790116645a26fc85892f11a4055 (diff)
downloadarch-mirror-91d2a184f9c79ab9cb0635bb0acc8f47d57f3e74.tar.xz
arch-mirror: fetch_archlinux_mirrors() ausgelagert
-rwxr-xr-xarch-mirror55
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/'