Skip to content

Commit 66108c6

Browse files
authored
Merge pull request #250 from infosiftr/suite-aliases
Add suite aliases
2 parents 5444fd5 + 6124914 commit 66108c6

File tree

1 file changed

+54
-32
lines changed

1 file changed

+54
-32
lines changed

generate-stackbrew-library.sh

Lines changed: 54 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -68,43 +68,65 @@ join() {
6868
}
6969

7070
for version in "${versions[@]}"; do
71-
commit="$(dirCommit "$version")"
72-
73-
fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "REDMINE_VERSION" { print $3; exit }')"
74-
75-
versionAliases=(
76-
$fullVersion
77-
$version
78-
${aliases[$version]:-}
79-
)
80-
81-
parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/Dockerfile")"
82-
arches="${parentRepoToArches[$parent]}"
83-
84-
# the "gosu" Debian package isn't available on mips64le
85-
arches="$(sed <<<" $arches " -e 's/ mips64le / /g')"
86-
87-
echo
88-
cat <<-EOE
89-
Tags: $(join ', ' "${versionAliases[@]}")
90-
Architectures: $(join ', ' $arches)
91-
GitCommit: $commit
92-
Directory: $version
93-
EOE
94-
95-
for variant in passenger alpine; do
96-
[ -f "$version/$variant/Dockerfile" ] || continue
97-
98-
commit="$(dirCommit "$version/$variant")"
99-
100-
variantAliases=( "${versionAliases[@]/%/-$variant}" )
101-
variantAliases=( "${variantAliases[@]//latest-/}" )
71+
for variant in '' passenger alpine; do
72+
dir="$version${variant:+/$variant}"
73+
[ -f "$dir/Dockerfile" ] || continue
74+
75+
commit="$(dirCommit "$dir")"
76+
77+
fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "REDMINE_VERSION" { print $3; exit }')"
78+
79+
versionAliases=(
80+
$fullVersion
81+
$version
82+
${aliases[$version]:-}
83+
)
84+
85+
if [ -n "$variant" ]; then
86+
variantAliases=( "${versionAliases[@]/%/-$variant}" )
87+
variantAliases=( "${variantAliases[@]//latest-/}" )
88+
else
89+
variantAliases=( "${versionAliases[@]}" )
90+
fi
91+
92+
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
93+
94+
suite="${variantParent#*:}" # "ruby:2.7-slim-bullseye", "2.7-alpine3.15"
95+
suite="${suite##*-}" # "bullseye", "alpine3.15"
96+
suite="${suite#alpine}" # "bullseye", "3.15"
97+
98+
case "$variant" in
99+
alpine)
100+
suite="alpine$suite" # "alpine3.8"
101+
suiteAliases=( "${versionAliases[@]/%/-$suite}" )
102+
;;
103+
passenger)
104+
# the "passenger" variant doesn't get any extra aliases (sorry)
105+
suiteAliases=()
106+
;;
107+
*)
108+
suiteAliases=( "${variantAliases[@]/%/-$suite}" )
109+
;;
110+
esac
111+
suiteAliases=( "${suiteAliases[@]//latest-/}" )
112+
variantAliases+=( "${suiteAliases[@]}" )
113+
114+
case "$variant" in
115+
passenger) variantArches='amd64' ;; # https://github.com/docker-library/redmine/pull/87#issuecomment-323877678
116+
*) variantArches="${parentRepoToArches[$variantParent]}" ;;
117+
esac
118+
119+
if [ "$variant" != 'alpine' ]; then
120+
# the "gosu" Debian package isn't available on mips64le
121+
variantArches="$(sed <<<" $variantArches " -e 's/ mips64le / /g')"
122+
fi
102123

103124
echo
104125
cat <<-EOE
105126
Tags: $(join ', ' "${variantAliases[@]}")
127+
Architectures: $(join ', ' $variantArches)
106128
GitCommit: $commit
107-
Directory: $version/$variant
129+
Directory: $dir
108130
EOE
109131
done
110132
done

0 commit comments

Comments
 (0)