Update "generate-stackbrew-library.sh"

This commit is contained in:
Tianon Gravi 2018-05-09 11:08:52 -07:00
parent 96d3dd0bf3
commit 0406b20125
3 changed files with 50 additions and 18 deletions

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/usr/bin/env bash
set -eu set -Eeuo pipefail
self="$(basename "$BASH_SOURCE")" self="$(basename "$BASH_SOURCE")"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
@ -46,8 +46,9 @@ source '.architectures-lib'
parentArches() { parentArches() {
local version="$1"; shift # "1.8", etc local version="$1"; shift # "1.8", etc
local dir="$1"; shift # "1.8/windows/windowsservercore-ltsc2016"
local parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$version/Dockerfile")" local parent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
local parentArches="${parentRepoToArches[$parent]:-}" local parentArches="${parentRepoToArches[$parent]:-}"
local arches=() local arches=()
@ -74,20 +75,51 @@ join() {
echo "${out#$sep}" echo "${out#$sep}"
} }
commit="$(dirCommit .)" for version in .; do
for v in \
jessie \
windows/windowsservercore-{ltsc2016,1709} \
; do
dir="$version/$v"
dir="${dir#./}"
variant="$(basename "$v")"
fullVersion="$(git show "$commit":Dockerfile | awk '$1 == "ENV" && $2 == "JULIA_VERSION" { print $3; exit }')" [ -f "$dir/Dockerfile" ] || continue
versionAliases=() commit="$(dirCommit "$dir")"
while [ "${fullVersion%.*}" != "$fullVersion" ]; do
versionAliases+=( $fullVersion ) fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "JULIA_VERSION" { print $3; exit }')"
fullVersion="${fullVersion%.*}"
versionAliases=()
while [ "${fullVersion%.*}" != "$fullVersion" ]; do
versionAliases+=( $fullVersion )
fullVersion="${fullVersion%.*}"
done
versionAliases+=( $fullVersion latest )
variantAliases=( "${versionAliases[@]/%/-$variant}" )
variantAliases=( "${variantAliases[@]//latest-/}" )
sharedTags=()
if [ "$variant" = 'jessie' ] || [[ "$variant" == 'windowsservercore'* ]]; then
sharedTags+=( "${versionAliases[@]}" )
fi
case "$v" in
windows/*) variantArches='windows-amd64' ;;
*) variantArches="$(parentArches "$version" "$dir")" ;;
esac
echo
echo "Tags: $(join ', ' "${variantAliases[@]}")"
if [ "${#sharedTags[@]}" -gt 0 ]; then
echo "SharedTags: $(join ', ' "${sharedTags[@]}")"
fi
cat <<-EOE
Architectures: $(join ', ' $variantArches)
GitCommit: $commit
Directory: $dir
EOE
[[ "$v" == windows/* ]] && echo "Constraints: $variant"
done
done done
versionAliases+=( $fullVersion latest )
echo
cat <<-EOE
Tags: $(join ', ' "${versionAliases[@]}")
Architectures: $(join ', ' $(parentArches .))
GitCommit: $commit
EOE

View File

@ -40,7 +40,7 @@ for version in '.'; do
sed -r \ sed -r \
-e 's!%%JULIA_VERSION%%!'"$fullVersion"'!g' \ -e 's!%%JULIA_VERSION%%!'"$fullVersion"'!g' \
-e 's!%%ARCH-CASE%%!'"$(sed_escape_rhs "$linuxArchCase")"'!g' \ -e 's!%%ARCH-CASE%%!'"$(sed_escape_rhs "$linuxArchCase")"'!g' \
Dockerfile-debian.template > "$version/Dockerfile" Dockerfile-debian.template > "$version/jessie/Dockerfile"
winSha256="$(echo "$sha256s" | grep "*julia-${fullVersion}-win64.exe$" | cut -d' ' -f1)" winSha256="$(echo "$sha256s" | grep "*julia-${fullVersion}-win64.exe$" | cut -d' ' -f1)"
for winVer in 1709 ltsc2016; do for winVer in 1709 ltsc2016; do