Restructure stackbrew generator
This commit is contained in:
parent
7d54535f6a
commit
4c4f9ccd4b
|
@ -1,9 +1,16 @@
|
|||
#!/bin/bash
|
||||
set -eu
|
||||
|
||||
# Latest available version based on https://downloads.joomla.org/technical-requirements - PHP 7.1 due to known 7.2 bugs still present
|
||||
defaultPhpVersion='php7.1'
|
||||
defaultVariant='apache'
|
||||
|
||||
self="$(basename "$BASH_SOURCE")"
|
||||
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
|
||||
|
||||
phpVersions=( php*.*/ )
|
||||
phpVersions=( "${phpVersions[@]%/}" )
|
||||
|
||||
# get the most recent commit which modified any of "$@"
|
||||
fileCommit() {
|
||||
git log -1 --format='format:%H' HEAD -- "$@"
|
||||
|
@ -40,35 +47,62 @@ join() {
|
|||
echo "${out#$sep}"
|
||||
}
|
||||
|
||||
for variant in apache apache-php7.0 apache-php7.1 apache-php7.2 fpm fpm-php7.0 fpm-php7.1 fpm-php7.2; do
|
||||
commit="$(dirCommit "$variant")"
|
||||
for phpVersion in "${phpVersions[@]}"; do
|
||||
for variant in apache fpm; do
|
||||
dir="$phpVersion/$variant"
|
||||
[ -f "$dir/Dockerfile" ] || continue
|
||||
|
||||
fullVersion="$(git show "$commit":"$variant/Dockerfile" | awk '$1 == "ENV" && $2 == "JOOMLA_VERSION" { print $3; exit }')"
|
||||
if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
|
||||
fullVersion+='.0'
|
||||
fi
|
||||
commit="$(dirCommit "$dir")"
|
||||
|
||||
versionAliases=()
|
||||
while [ "${fullVersion%.*}" != "$fullVersion" ]; do
|
||||
versionAliases+=( $fullVersion )
|
||||
fullVersion="${fullVersion%.*}"
|
||||
fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "JOOMLA_VERSION" { print $3; exit }')"
|
||||
if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
|
||||
fullVersion+='.0'
|
||||
fi
|
||||
|
||||
versionAliases=()
|
||||
while [ "${fullVersion%[.-]*}" != "$fullVersion" ]; do
|
||||
versionAliases+=( $fullVersion )
|
||||
fullVersion="${fullVersion%[.-]*}"
|
||||
done
|
||||
versionAliases+=(
|
||||
$fullVersion
|
||||
latest
|
||||
)
|
||||
|
||||
phpVersionAliases=( "${versionAliases[@]/%/-$phpVersion}" )
|
||||
phpVersionAliases=( "${phpVersionAliases[@]//latest-/}" )
|
||||
|
||||
variantAliases=( "${versionAliases[@]/%/-$variant}" )
|
||||
variantAliases=( "${variantAliases[@]//latest-/}" )
|
||||
|
||||
phpVersionVariantAliases=( "${versionAliases[@]/%/-$phpVersion-$variant}" )
|
||||
phpVersionVariantAliases=( "${phpVersionVariantAliases[@]//latest-/}" )
|
||||
|
||||
fullAliases=()
|
||||
|
||||
if [ "$phpVersion" = "$defaultPhpVersion" ]; then
|
||||
fullAliases+=( "${variantAliases[@]}" )
|
||||
|
||||
if [ "$variant" = "$defaultVariant" ]; then
|
||||
fullAliases+=( "${versionAliases[@]}" )
|
||||
fi
|
||||
fi
|
||||
|
||||
fullAliases+=(
|
||||
"${phpVersionVariantAliases[@]}"
|
||||
)
|
||||
|
||||
if [ "$variant" = "$defaultVariant" ]; then
|
||||
fullAliases+=( "${phpVersionAliases[@]}" )
|
||||
fi
|
||||
|
||||
variantParent="$(awk 'toupper($1) == "FROM" { print $2 }' "$dir/Dockerfile")"
|
||||
|
||||
echo
|
||||
cat <<-EOE
|
||||
Tags: $(join ', ' "${fullAliases[@]}")
|
||||
GitCommit: $commit
|
||||
Directory: $dir
|
||||
EOE
|
||||
done
|
||||
versionAliases+=(
|
||||
$fullVersion
|
||||
latest
|
||||
)
|
||||
|
||||
variantAliases=( "${versionAliases[@]/%/-$variant}" )
|
||||
variantAliases=( "${variantAliases[@]//latest-/}" )
|
||||
|
||||
if [ "$variant" = 'apache' ]; then
|
||||
variantAliases+=( "${versionAliases[@]}" )
|
||||
fi
|
||||
|
||||
echo
|
||||
cat <<-EOE
|
||||
Tags: $(join ', ' "${variantAliases[@]}")
|
||||
GitCommit: $commit
|
||||
Directory: $variant
|
||||
EOE
|
||||
done
|
||||
|
|
Loading…
Reference in New Issue