1
1
#! /usr/bin/env bash
2
2
set -Eeuo pipefail
3
3
4
- declare -A aliases=(
5
- [4.1]=' 4 latest'
6
- [3.13]=' 3'
7
- )
8
4
defaultVariant=' ubuntu'
9
5
10
6
self=" $( basename " $BASH_SOURCE " ) "
@@ -14,7 +10,7 @@ if [ "$#" -eq 0 ]; then
14
10
versions=" $( jq -r '
15
11
to_entries
16
12
# sort version numbers with highest first
17
- | sort_by(.key | split("[.-]"; "") | map(try tonumber // .))
13
+ | sort_by(.key | split("[.-]"; "") | map(tonumber? // .))
18
14
| reverse
19
15
| map(if .value then .key | @sh else empty end)
20
16
| join(" ")
@@ -81,6 +77,8 @@ join() {
81
77
echo " ${out# $sep } "
82
78
}
83
79
80
+ declare -A usedAliases=()
81
+
84
82
for version; do
85
83
export version
86
84
rcVersion=" ${version% -rc} "
@@ -103,16 +101,22 @@ for version; do
103
101
versionAliases=()
104
102
if [ " $version " = " $rcVersion " ]; then
105
103
while [ " $fullVersion " != " $version " -a " ${fullVersion% [.-]* } " != " $fullVersion " ]; do
106
- versionAliases+=( $fullVersion )
104
+ versionAliases+=( " $fullVersion " )
107
105
fullVersion=" ${fullVersion% [.-]* } "
108
106
done
109
107
else
110
- versionAliases+=( $fullVersion )
108
+ versionAliases+=( " $fullVersion " )
109
+ fi
110
+ versionAliases+=( $version )
111
+
112
+ if [ " $version " = " $rcVersion " ]; then
113
+ for tagAlias in " ${fullVersion%% .* } " latest; do
114
+ if [ -z " ${usedAliases[$tagAlias]:- } " ]; then
115
+ versionAliases+=( " $tagAlias " )
116
+ usedAliases[" $tagAlias " ]=" $version "
117
+ fi
118
+ done
111
119
fi
112
- versionAliases+=(
113
- $version
114
- ${aliases[$version]:- }
115
- )
116
120
117
121
for variant in ubuntu alpine; do
118
122
dir=" $version /$variant "
0 commit comments