Skip to content

Commit 18c5298

Browse files
committed
Add proper Architectures entries in "generate-stackbrew-library.sh"
1 parent b5c0452 commit 18c5298

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

generate-stackbrew-library.sh

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,22 @@ dirCommit() {
3838
)
3939
}
4040

41+
getArches() {
42+
local repo="$1"; shift
43+
local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/'
44+
45+
eval "declare -g -A parentRepoToArches=( $(
46+
find -name 'Dockerfile' -exec awk '
47+
toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ {
48+
print "'"$officialImagesUrl"'" $2
49+
}
50+
' '{}' + \
51+
| sort -u \
52+
| xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
53+
) )"
54+
}
55+
getArches 'php'
56+
4157
cat <<-EOH
4258
# this file is generated via https://github.com/docker-library/php/blob/$(fileCommit "$self")/$self
4359
@@ -64,37 +80,35 @@ for version in "${versions[@]}"; do
6480
${aliases[$version]:-}
6581
)
6682

67-
variant='cli'
68-
variantAliases=( "${versionAliases[@]/%/-$variant}" )
69-
variantAliases=( "${variantAliases[@]//latest-/}" )
70-
variantAliases+=( "${versionAliases[@]}" )
71-
72-
echo
73-
cat <<-EOE
74-
Tags: $(join ', ' "${variantAliases[@]}")
75-
GitCommit: $commit
76-
Directory: $version
77-
EOE
78-
7983
for variant in \
84+
'' \
8085
alpine \
8186
apache \
8287
fpm fpm/alpine \
8388
zts zts/alpine \
8489
; do
85-
[ -f "$version/$variant/Dockerfile" ] || continue
90+
dir="$version${variant:+/$variant}"
91+
[ -f "$dir/Dockerfile" ] || continue
92+
variant="${variant:-cli}"
8693

87-
commit="$(dirCommit "$version/$variant")"
94+
commit="$(dirCommit "$dir")"
8895

8996
slash='/'
9097
variantAliases=( "${versionAliases[@]/%/-${variant//$slash/-}}" )
9198
variantAliases=( "${variantAliases[@]//latest-/}" )
99+
if [ "$variant" = 'cli' ]; then
100+
variantAliases+=( "${versionAliases[@]}" )
101+
fi
102+
103+
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
104+
variantArches="${parentRepoToArches[$variantParent]}"
92105

93106
echo
94107
cat <<-EOE
95108
Tags: $(join ', ' "${variantAliases[@]}")
109+
Architectures: $(join ', ' $variantArches)
96110
GitCommit: $commit
97-
Directory: $version/$variant
111+
Directory: $dir
98112
EOE
99113
done
100114
done

0 commit comments

Comments
 (0)