mirror of
https://github.com/octoleo/docker-joomla.git
synced 2024-11-09 22:20:55 +00:00
105 lines
3.3 KiB
Bash
Executable File
105 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
[ -f versions.json ] # run "versions.sh" first
|
|
|
|
jqt='.jq-template.awk'
|
|
if [ -n "${BASHBREW_SCRIPTS:-}" ]; then
|
|
jqt="$BASHBREW_SCRIPTS/jq-template.awk"
|
|
elif [ "$BASH_SOURCE" -nt "$jqt" ]; then
|
|
wget -qO "$jqt" 'https://github.com/docker-library/bashbrew/raw/5f0c26381fb7cc78b2d217d58007800bdcfbcfa1/scripts/jq-template.awk'
|
|
fi
|
|
|
|
# if no versions passed we load from versions.json
|
|
if [ "$#" -eq 0 ]; then
|
|
versions="$(jq -r 'keys | map(@sh) | join(" ")' versions.json)"
|
|
eval "set -- $versions"
|
|
fi
|
|
|
|
# the warning message to not update the docker files directly
|
|
generated_warning() {
|
|
cat <<-EOH
|
|
#
|
|
# NOTE: THIS DOCKERFILE IS GENERATED VIA "apply-templates.sh"
|
|
#
|
|
# PLEASE DO NOT EDIT IT DIRECTLY.
|
|
#
|
|
|
|
EOH
|
|
}
|
|
|
|
# set the Joomla maintainers of these docker images
|
|
joomlaMaintainers="$( jq -cr '. | map(.firstname + " " + .lastname + " <" + .email + "> (@" + .github + ")") | join(", ")' maintainers.json)"
|
|
export joomlaMaintainers
|
|
|
|
# loop over the version set above
|
|
for version; do
|
|
export version
|
|
# see if we version specific entrypoint file
|
|
if [[ -e "docker-entrypoint-${version}.sh" ]]; then
|
|
docker_entrypoint="docker-entrypoint-${version}.sh"
|
|
else
|
|
docker_entrypoint="docker-entrypoint.sh"
|
|
fi
|
|
# get this Joomla version details
|
|
joomlaVersionDetails="$(jq -r '.[env.version]' versions.json)"
|
|
# get this Joomla version
|
|
joomlaVersion="$(echo "${joomlaVersionDetails}" | jq -r '.version')"
|
|
export joomlaVersion
|
|
# get the PHP version
|
|
phpVersions="$(echo "${joomlaVersionDetails}" | jq -r '.phpVersions | map(@sh) | join(" ")')"
|
|
eval "phpVersions=( $phpVersions )"
|
|
# get the variants
|
|
variants="$(echo "${joomlaVersionDetails}" | jq -r '.variants | map(@sh) | join(" ")')"
|
|
eval "variants=( $variants )"
|
|
# get this version Joomla Sha512
|
|
joomlaSha512="$(echo "${joomlaVersionDetails}" | jq -r '.sha512')"
|
|
export joomlaSha512
|
|
# get this version Joomla Package URL
|
|
joomlaPackage="$(echo "${joomlaVersionDetails}" | jq -r '.package')"
|
|
export joomlaPackage
|
|
# get this version Joomla Package Type
|
|
joomlaPackageType="$(echo "${joomlaVersionDetails}" | jq -r '.packageType')"
|
|
export joomlaPackageType
|
|
|
|
for phpVersion in "${phpVersions[@]}"; do
|
|
export phpVersion
|
|
|
|
# get the pecl values (we may want to move this to versions.json)
|
|
peclValues="$(jq -r '.[env.version].phpVersions[env.phpVersion].pecl' versions-helper.json)"
|
|
# get the APCu values
|
|
pecl_APCu="$(echo "${peclValues}" | jq -r '.APCu')"
|
|
export pecl_APCu
|
|
# get the memcached values
|
|
pecl_memcached="$(echo "${peclValues}" | jq -r '.memcached')"
|
|
export pecl_memcached
|
|
# get the redis values
|
|
pecl_redis="$(echo "${peclValues}" | jq -r '.redis')"
|
|
export pecl_redis
|
|
# get the mcrypt values
|
|
pecl_mcrypt="$(echo "${peclValues}" | jq -r '.mcrypt')"
|
|
export pecl_mcrypt
|
|
|
|
for variant in "${variants[@]}"; do
|
|
export variant
|
|
|
|
# the path to this variant folder
|
|
dir="$version/php$phpVersion/$variant"
|
|
mkdir -p "$dir"
|
|
|
|
echo "processing $dir ..."
|
|
|
|
# move the entrypoint file into place
|
|
cp -a "$docker_entrypoint" "$dir/docker-entrypoint.sh"
|
|
# move the make database file into place
|
|
cp -a "makedb.php" "$dir/makedb.php"
|
|
|
|
{
|
|
generated_warning
|
|
gawk -f "$jqt" Dockerfile.template
|
|
} >"$dir/Dockerfile"
|
|
done
|
|
done
|
|
done
|
|
|