Skip to content

Commit

Permalink
Merge pull request #121 from infosiftr/multiarch
Browse files Browse the repository at this point in the history
Refactor multiarch support to go all the way to correct Architectures lines in "generate-stackbrew-library.sh"
  • Loading branch information
yosifkit authored Jun 8, 2017
2 parents e3c5865 + efbcd4f commit 999017c
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions generate-stackbrew-library.sh
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ dirCommit() {
)
}

getArches() {
local repo="$1"; shift
local officialImagesUrl='https://github.com/docker-library/official-images/raw/master/library/'

eval "declare -g -A parentRepoToArches=( $(
find -name 'Dockerfile' -exec awk '
toupper($1) == "FROM" && $2 !~ /^('"$repo"'|scratch|microsoft\/[^:]+)(:|$)/ {
print "'"$officialImagesUrl"'" $2
}
' '{}' + \
| sort -u \
| xargs bashbrew cat --format '[{{ .RepoName }}:{{ .TagName }}]="{{ join " " .TagEntry.Architectures }}"'
) )"
}
getArches 'openjdk'

cat <<-EOH
# this file is generated via https://github.com/docker-library/openjdk/blob/$(fileCommit "$self")/$self
Expand Down Expand Up @@ -102,9 +118,13 @@ for version in "${versions[@]}"; do

fullVersion="$(git show "$commit":"$version/Dockerfile" | awk '$1 == "ENV" && $2 == "JAVA_VERSION" { gsub(/~/, "-", $3); print $3; exit }')"

parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/Dockerfile")"
arches="${parentRepoToArches[$parent]}"

echo
cat <<-EOE
Tags: $(join ', ' $(aliases "$javaVersion" "$javaType" "$fullVersion"))
Architectures: $(join ', ' $arches)
GitCommit: $commit
Directory: $version
EOE
Expand All @@ -122,9 +142,18 @@ for version in "${versions[@]}"; do

fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "JAVA_VERSION" { gsub(/~/, "-", $3); print $3; exit }')"

case "$v" in
windows/*) variantArches='windows-amd64' ;;
*)
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/$v/Dockerfile")"
variantArches="${parentRepoToArches[$variantParent]}"
;;
esac

echo
cat <<-EOE
Tags: $(join ', ' $(aliases "$javaVersion" "$javaType" "$fullVersion" "$variant"))
Architectures: $(join ', ' $variantArches)
GitCommit: $commit
Directory: $dir
EOE
Expand Down

0 comments on commit 999017c

Please sign in to comment.