Gentoo Archives: gentoo-commits

From: "Robin H. Johnson" <robbat2@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gentoo-mirrorstats:master commit in: /
Date: Wed, 29 Apr 2020 05:20:26
Message-Id: 1588136974.3481f1fa6e8dba159ded86d4f09ea860e307049a.robbat2@gentoo
1 commit: 3481f1fa6e8dba159ded86d4f09ea860e307049a
2 Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
3 AuthorDate: Wed Apr 29 05:09:34 2020 +0000
4 Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
5 CommitDate: Wed Apr 29 05:09:34 2020 +0000
6 URL: https://gitweb.gentoo.org/proj/gentoo-mirrorstats.git/commit/?id=3481f1fa
7
8 Convert refactored runner to wrapper
9
10 Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
11
12 mirmon-snapshots.sh | 44 ------------------
13 mirmon-wrapper.sh | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++
14 2 files changed, 125 insertions(+), 44 deletions(-)
15
16 diff --git a/mirmon-snapshots.sh b/mirmon-snapshots.sh
17 deleted file mode 100755
18 index 5a5c127..0000000
19 --- a/mirmon-snapshots.sh
20 +++ /dev/null
21 @@ -1,44 +0,0 @@
22 -#!/bin/bash
23 -
24 -set -e
25 -
26 -MODE=snapshots
27 -SRC=distfiles
28 -SITEDIR=/var/www/mirrorstats.gentoo.org
29 -REPODIR=${SITEDIR}/gentoo-mirrorstats/
30 -MODEDIR=${REPODIR}/${MODE}_mirrors/
31 -VARDIR=${SITEDIR}/var/${MODE}
32 -HTDOCS=${SITEDIR}/htdocs/${MODE}
33 -MIRMON=$(readlink -f "${SITEDIR}"/mirmon/mirmon)
34 -CONFFILE=$(readlink -f "${MODEDIR}"/mirmon.conf)
35 -VAR_GMIRRORS=${VARDIR}/g.mirrors
36 -URL=https://www.gentoo.org/downloads/mirrors/
37 -
38 -# Grab mirrors from the web
39 -mkdir -p "${VARDIR}"
40 -"${REPODIR}"/get-mirrors-from-${SRC}-xml.rb > "${VAR_GMIRRORS}".tmp
41 -
42 -EXTRA_MIRRORS=${MODEDIR}/g.mirrors.extra
43 -[[ -e "${EXTRA_MIRRORS}" ]] && cat "${EXTRA_MIRRORS}" >>"${VAR_GMIRRORS}".tmp
44 -
45 -# Atomic rotate into place
46 -mv -f "${VAR_GMIRRORS}"{.tmp,}
47 -
48 -# fatal if the state file is NOT present.
49 -[[ -e ${VARDIR}/mirmon.state ]] || touch "${VARDIR}/mirmon.state"
50 -
51 -# run mirmon
52 -/usr/bin/perl "${MIRMON}" -c "${CONFFILE}" -q -get update
53 -
54 -# Set up a nice link to our mirror page directly:
55 -mkdir -p ${HTDOCS}
56 -sed \
57 - -e "s#mirrors</H2>#<a href="${URL}">mirrors</a></H2>#" \
58 - >"${HTDOCS}"/index.html.tmp <"${HTDOCS}"/index-wip.html \
59 - && mv -f "${HTDOCS}"/index.html{.tmp,}
60 -
61 -# Generate a json file containing the state of each mirror
62 -"${REPODIR}"/generate-json.py \
63 - "${VARDIR}"/mirmon.state \
64 - >"${HTDOCS}"/state.json.tmp \
65 - && mv -f "${HTDOCS}"/state.json{.tmp,}
66
67 diff --git a/mirmon-wrapper.sh b/mirmon-wrapper.sh
68 new file mode 100755
69 index 0000000..ba731c6
70 --- /dev/null
71 +++ b/mirmon-wrapper.sh
72 @@ -0,0 +1,125 @@
73 +#!/bin/bash -e
74 +
75 +NAME=$(basename "$0")
76 +
77 +OPTIONS=(
78 + "mode"
79 + "xml-src"
80 + "url"
81 +)
82 +
83 +usage() {
84 + echo "Usage: ${NAME}$(printf " --%s=..." "${OPTIONS[@]}" )" 1>&2
85 + exit 3
86 +}
87 +
88 +dohelp() {
89 + echo "${NAME} TODO" 1>&2
90 + exit 0
91 +}
92 +
93 +die() {
94 + echo "$*" 1>&2
95 + exit 2
96 +}
97 +
98 +main() {
99 + [[ -z "$MODE" ]] && die "--mode unset"
100 + [[ -z "$XML_SRC" ]] && die "--xml-src unset"
101 + [[ -z "$URL" ]] && die "--url unset"
102 + SITEDIR=/var/www/mirrorstats.gentoo.org
103 + REPODIR=${SITEDIR}/gentoo-mirrorstats/
104 + MODEDIR=${REPODIR}/${MODE}_mirrors/
105 + VARDIR=${SITEDIR}/var/${MODE}
106 + HTDOCS=${SITEDIR}/htdocs/${MODE}
107 + MIRMON=$(readlink -f "${SITEDIR}"/mirmon/mirmon)
108 + CONFFILE=$(readlink -f "${MODEDIR}"/mirmon.conf)
109 + VAR_GMIRRORS=${VARDIR}/g.mirrors
110 +
111 + # Grab mirrors from the web
112 + mkdir -p "${VARDIR}"
113 + "${REPODIR}"/get-mirrors-from-${XML_SRC}-xml.rb > "${VAR_GMIRRORS}".tmp
114 +
115 + EXTRA_MIRRORS=${MODEDIR}/g.mirrors.extra
116 + [[ -e "${EXTRA_MIRRORS}" ]] && cat "${EXTRA_MIRRORS}" >>"${VAR_GMIRRORS}".tmp
117 +
118 + # Atomic rotate into place
119 + mv -f "${VAR_GMIRRORS}"{.tmp,}
120 +
121 + # fatal if the state file is NOT present.
122 + [[ -e ${VARDIR}/mirmon.state ]] || touch "${VARDIR}/mirmon.state"
123 +
124 + # run mirmon
125 + /usr/bin/perl "${MIRMON}" -c "${CONFFILE}" -q -get update
126 +
127 + # Set up a nice link to our mirror page directly:
128 + mkdir -p ${HTDOCS}
129 + sed \
130 + -e "s#mirrors</H2>#<a href="${URL}">mirrors</a></H2>#" \
131 + >"${HTDOCS}"/index.html.tmp <"${HTDOCS}"/index-wip.html \
132 + && mv -f "${HTDOCS}"/index.html{.tmp,}
133 +
134 + # Generate a json file containing the state of each mirror
135 + "${REPODIR}"/generate-json.py \
136 + "${VARDIR}"/mirmon.state \
137 + >"${HTDOCS}"/state.json.tmp \
138 + && mv -f "${HTDOCS}"/state.json{.tmp,}
139 +
140 + # Done
141 + exit 0
142 +}
143 +
144 +opts=$(getopt \
145 + --longoptions "$(printf "%s:," "${OPTIONS[@]}" )" \
146 + --name "$(basename "$0")" \
147 + --options "" \
148 + -- "$@"
149 +)
150 +
151 +eval set --$opts
152 +
153 +MODE=''
154 +XML_SRC=''
155 +URL=''
156 +HELP=0
157 +INVALID=0
158 +
159 +while [[ $# -gt 0 ]]; do
160 + case "$1" in
161 + --mode)
162 + MODE=$2
163 + shift 2
164 + ;;
165 +
166 + --xml-src)
167 + XML_SRC=$2
168 + shift 2
169 + ;;
170 +
171 + --url)
172 + URL=$2
173 + shift 2
174 + ;;
175 + --help)
176 + HELP=1
177 + break
178 + ;;
179 + --)
180 + # End of options
181 + break
182 + ;;
183 + *)
184 + INVALID=1
185 + break
186 + ;;
187 + esac
188 +done
189 +
190 +[[ $INVALID -eq 1 ]] && usage
191 +[[ $HELP -eq 1 ]] && dohelp
192 +
193 +main
194 +
195 +#MODE=snapshots
196 +#XML_SRC=distfiles
197 +#URL=https://www.gentoo.org/downloads/mirrors/