forked from docker-library/drupal
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate.sh
executable file
·67 lines (58 loc) · 1.89 KB
/
update.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/bin/bash
set -eo pipefail
cd "$(dirname "$(readlink -f "$BASH_SOURCE")")"
versions=( "$@" )
if [ ${#versions[@]} -eq 0 ]; then
versions=( */ )
fi
versions=( "${versions[@]%/}" )
# https://www.drupal.org/docs/8/system-requirements/php-requirements#php_required
defaultPhpVersion='7.3'
declare -A phpVersions=(
# https://www.drupal.org/docs/7/system-requirements/php-requirements#php_required
#[7]='7.2'
)
travisEnv=
for version in "${versions[@]}"; do
rcGrepV='-v'
rcVersion="${version%-rc}"
if [ "$rcVersion" != "$version" ]; then
rcGrepV=
fi
fullVersion="$(
wget -qO- "https://updates.drupal.org/release-history/drupal/${rcVersion%%.*}.x" \
| awk -v RS='[<>]' '
$1 == "release" { release = 1; version = ""; mdhash = ""; tag = ""; next }
release && $1 ~ /^version|mdhash$/ { tag = $1; next }
release && tag == "version" { version = $1 }
release && tag == "mdhash" { mdhash = $1 }
release { tag = "" }
release && $1 == "/release" { release = 0; print version, mdhash }
' \
| grep -E "^${rcVersion}[. -]" \
| grep $rcGrepV -E -- '-rc|-beta|-alpha|-dev' \
| head -1
)"
if [ -z "$fullVersion" ]; then
echo >&2 "error: cannot find release for $version"
exit 1
fi
md5="${fullVersion##* }"
fullVersion="${fullVersion% $md5}"
echo "$version: $fullVersion ($md5)"
for variant in fpm-alpine fpm apache; do
dist='debian'
if [[ "$variant" = *alpine ]]; then
dist='alpine'
fi
sed -r \
-e 's/%%PHP_VERSION%%/'"${phpVersions[$version]:-$defaultPhpVersion}"'/' \
-e 's/%%VARIANT%%/'"$variant"'/' \
-e 's/%%VERSION%%/'"$fullVersion"'/' \
-e 's/%%MD5%%/'"$md5"'/' \
"./Dockerfile-$dist.template" > "$version/$variant/Dockerfile"
travisEnv='\n - VERSION='"$version"' VARIANT='"$variant$travisEnv"
done
done
travis="$(awk -v 'RS=\n\n' '$1 == "env:" { $0 = "env:'"$travisEnv"'" } { printf "%s%s", $0, RS }' .travis.yml)"
echo "$travis" > .travis.yml