Skip to content

Commit 083a412

Browse files
committed
Adjust "update.sh" to also scrape the news page (since the releases page doesn't seem to contain 2.3.5 or 2.2.8, and even 2.4.2 took a while to show up)
1 parent beb05c8 commit 083a412

File tree

1 file changed

+21
-6
lines changed

1 file changed

+21
-6
lines changed

update.sh

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ if [ ${#versions[@]} -eq 0 ]; then
88
versions=( */ )
99
fi
1010
versions=( "${versions[@]%/}" )
11-
releasePage="$(curl -fsSL 'https://www.ruby-lang.org/en/downloads/releases/')"
11+
12+
releasesPage="$(curl -fsSL 'https://www.ruby-lang.org/en/downloads/releases/')"
13+
newsPage="$(curl -fsSL 'https://www.ruby-lang.org/en/news/')" # occasionally, releases don't show up on the Releases page
1214

1315
latest_gem_version() {
1416
curl -fsSL "https://rubygems.org/api/v1/gems/$1.json" | sed -r 's/^.*"version":"([^"]+)".*$/\1/'
@@ -34,19 +36,32 @@ for version in "${versions[@]}"; do
3436
); unset IFS
3537

3638
fullVersion=
39+
shaVal=
3740
for tryVersion in "${allVersions[@]}"; do
38-
if echo "$releasePage" | grep -q "Ruby ${tryVersion}<"; then
39-
fullVersion="$tryVersion"
40-
break
41+
if \
42+
{
43+
versionReleasePage="$(echo "$releasesPage" | grep "<td>Ruby $tryVersion</td>" -A 2 | awk -F '"' '$1 == "<td><a href=" { print $2; exit }')" \
44+
&& [ "$versionReleasePage" ]
45+
} \
46+
|| {
47+
versionReleasePage="$(echo "$newsPage" | grep -oE '<a href="[^"]+">Ruby '"$tryVersion"' Released</a>' | cut -d'"' -f2)" \
48+
&& [ "$versionReleasePage" ]
49+
} \
50+
; then
51+
if \
52+
shaVal="$(curl -fsSL "https://www.ruby-lang.org/$versionReleasePage" |tac|tac| grep "ruby-$tryVersion.tar.xz" -A 5 | awk '/^SHA256:/ { print $2; exit }')" \
53+
&& [ "$shaVal" ] \
54+
; then
55+
fullVersion="$tryVersion"
56+
break
57+
fi
4158
fi
4259
done
4360

4461
if [ -z "$fullVersion" ]; then
4562
echo >&2 "warning: cannot determine sha for $version (tried all of ${allVersions[*]}); skipping"
4663
continue
4764
fi
48-
versionReleasePage="$(echo "$releasePage" | grep "<td>Ruby $fullVersion</td>" -A 2 | awk -F '"' '$1 == "<td><a href=" { print $2; exit }')"
49-
shaVal="$(curl -fsSL "https://www.ruby-lang.org/$versionReleasePage" |tac|tac| grep "ruby-$fullVersion.tar.xz" -A 5 | awk '/^SHA256:/ { print $2; exit }')"
5065

5166
echo "$version: $fullVersion; rubygems $rubygems, bundler $bundler; $shaVal"
5267

0 commit comments

Comments
 (0)