1
1
#! /bin/bash
2
- set -e
2
+ set -eo pipefail
3
3
4
4
cd " $( dirname " $( readlink -f " $BASH_SOURCE " ) " ) "
5
5
@@ -8,10 +8,10 @@ if [ ${#versions[@]} -eq 0 ]; then
8
8
versions=( * / )
9
9
fi
10
10
versions=( " ${versions[@]%/ } " )
11
- releasePage=$( curl -fsSL ' https://www.ruby-lang.org/en/downloads/releases/' | tr ' \r\n ' ' ' )
11
+ releasePage=" $( curl -fsSL ' https://www.ruby-lang.org/en/downloads/releases/' ) "
12
12
13
13
latest_gem_version () {
14
- curl -sSL " https://rubygems.org/api/v1/gems/$1 .json" | sed -r ' s/^.*"version":"([^"]+)".*$/\1/'
14
+ curl -fsSL " https://rubygems.org/api/v1/gems/$1 .json" | sed -r ' s/^.*"version":"([^"]+)".*$/\1/'
15
15
}
16
16
17
17
rubygems=" $( latest_gem_version rubygems-update) "
@@ -26,10 +26,10 @@ for version in "${versions[@]}"; do
26
26
fi
27
27
28
28
IFS=$' \n ' ; allVersions=(
29
- $( curl -sSL --compressed " https://cache.ruby-lang.org/pub/ruby/$rcVersion /" \
30
- | grep -E ' <a href="ruby-' " $rcVersion " ' .[^"]+\.tar\.bz2 ' \
29
+ $( curl -fsSL --compressed " https://cache.ruby-lang.org/pub/ruby/$rcVersion /" \
30
+ | grep -E ' <a href="ruby-' " $rcVersion " ' .[^"]+\.tar\.xz ' \
31
31
| grep $rcGrepV -E ' preview|rc' \
32
- | sed -r ' s!.*<a href="ruby-([^"]+)\.tar\.bz2 .*!\1!' \
32
+ | sed -r ' s!.*<a href="ruby-([^"]+)\.tar\.xz .*!\1!' \
33
33
| sort -rV)
34
34
); unset IFS
35
35
@@ -45,8 +45,8 @@ for version in "${versions[@]}"; do
45
45
echo >&2 " warning: cannot determine sha for $version (tried all of ${allVersions[*]} ); skipping"
46
46
continue
47
47
fi
48
- versionReleasePage=" $( curl -fsSL ' https://www.ruby-lang.org/en/downloads/releases/ ' | grep " <td>Ruby $fullVersion </td>" -A 2 | awk -F' "' ' { print $2} ' | xargs ) "
49
- shaVal=" $( curl -fsSL " https://www.ruby-lang.org/$versionReleasePage " | grep " ruby-$fullVersion .tar.xz" -A 5 | grep SHA256 | awk ' { print $2}' ) "
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 }' ) "
50
50
51
51
sedStr="
52
52
s!%%VERSION%%!$version !g;
@@ -55,6 +55,7 @@ for version in "${versions[@]}"; do
55
55
s!%%RUBYGEMS%%!$rubygems !g;
56
56
s!%%BUNDLER%%!$bundler !g;
57
57
"
58
+ echo " $version : $fullVersion ; rubygems $rubygems , bundler $bundler ; $shaVal "
58
59
for variant in alpine slim onbuild ' ' ; do
59
60
[ -d " $version /$variant " ] || continue
60
61
sed -r " $sedStr " " Dockerfile${variant: +-$variant } .template" > " $version /$variant /Dockerfile"
0 commit comments