2
3
mirror of https://github.com/octoleo/docker-joomla.git synced 2024-05-29 04:20:49 +00:00

Restructure stackbrew generator

This commit is contained in:
Michael Babker 2018-02-12 17:51:50 -06:00
parent 7d54535f6a
commit 4c4f9ccd4b

View File

@ -1,9 +1,16 @@
#!/bin/bash #!/bin/bash
set -eu 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")" self="$(basename "$BASH_SOURCE")"
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
phpVersions=( php*.*/ )
phpVersions=( "${phpVersions[@]%/}" )
# get the most recent commit which modified any of "$@" # get the most recent commit which modified any of "$@"
fileCommit() { fileCommit() {
git log -1 --format='format:%H' HEAD -- "$@" git log -1 --format='format:%H' HEAD -- "$@"
@ -40,35 +47,62 @@ join() {
echo "${out#$sep}" 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 for phpVersion in "${phpVersions[@]}"; do
commit="$(dirCommit "$variant")" 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 }')" commit="$(dirCommit "$dir")"
if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
fullVersion+='.0'
fi
versionAliases=() fullVersion="$(git show "$commit":"$dir/Dockerfile" | awk '$1 == "ENV" && $2 == "JOOMLA_VERSION" { print $3; exit }')"
while [ "${fullVersion%.*}" != "$fullVersion" ]; do if [[ "$fullVersion" != *.*.* && "$fullVersion" == *.* ]]; then
versionAliases+=( $fullVersion ) fullVersion+='.0'
fullVersion="${fullVersion%.*}" 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 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 done