1
1
#! /bin/bash
2
- set -eu -o pipefail -x
2
+ set -eu -o pipefail
3
3
4
- # Check for dependencies
5
- command -v curl > /dev/null 2>&1 || { echo >&2 " 'curl' is required but not found. Aborting." ; exit 1; }
6
- command -v jq > /dev/null 2>&1 || { echo >&2 " 'jq' is required but not found. Aborting." ; exit 1; }
7
- [ -n " ${BASH_VERSINFO} " ] && [ -n " ${BASH_VERSINFO[0]} " ] && [ ${BASH_VERSINFO[0]} -ge 4 ] \
8
- || { echo >&2 " Bash 4.0 or greater is required. Aborting." ; exit 1; }
4
+ variants=(
5
+ apache
6
+ fpm
7
+ fpm-alpine
8
+ )
9
+
10
+ declare -A base=(
11
+ [apache]=' debian'
12
+ [fpm]=' debian'
13
+ [fpm-alpine]=' alpine'
14
+ )
9
15
10
16
declare -A php_version=(
11
17
[default]=' 8.1'
@@ -17,12 +23,6 @@ declare -A cmd=(
17
23
[fpm-alpine]=' php-fpm'
18
24
)
19
25
20
- declare -A base=(
21
- [apache]=' debian'
22
- [fpm]=' debian'
23
- [fpm-alpine]=' alpine'
24
- )
25
-
26
26
gpg_key=' 3D06A59ECE730EB71B511C17CE752F178259BD92'
27
27
28
28
function download_url() {
@@ -41,28 +41,42 @@ function create_variant() {
41
41
42
42
echo " updating $version [$branch ] $variant "
43
43
44
+ # Create Dockerfile
44
45
local template=" Dockerfile-${base[$variant]} .template"
45
46
cp " $template " " $variant /Dockerfile"
46
- cp config.inc.php " $variant /config.inc.php "
47
- cp docker-entrypoint.sh " $variant /docker-entrypoint.sh "
47
+
48
+ # Replace Dockerfile variables
48
49
sed -ri -e '
50
+ s/%%VARIANT%%/' " $variant " ' /;
49
51
s/%%VERSION%%/' " $version " ' /;
50
52
s/%%SHA256%%/' " $sha256 " ' /;
51
53
s/%%DOWNLOAD_URL%%/' " $( sed -e ' s/[\/&]/\\&/g' <<< " $url" ) " ' /;
52
54
s/%%DOWNLOAD_URL_ASC%%/' " $( sed -e ' s/[\/&]/\\&/g' <<< " $ascUrl" ) " ' /;
53
55
s/%%PHP_VERSION%%/' " $phpVersion " ' /g;
54
56
s/%%GPG_KEY%%/' " $gpg_key " ' /g;
55
- s/%%VARIANT%%/' " $variant " ' /;
56
57
s/%%CMD%%/' " ${cmd[$variant]} " ' /;
57
58
' " $variant /Dockerfile"
59
+
60
+ # Copy docker-entrypoint.sh
61
+ cp docker-entrypoint.sh " $variant /docker-entrypoint.sh"
58
62
if [ " $variant " != " apache" ]; then
59
63
sed -i " /^# start: Apache specific settings$/,/^# end: Apache specific settings$/d" " $variant /docker-entrypoint.sh"
60
64
fi
65
+
66
+ # Copy config.inc.php
67
+ cp config.inc.php " $variant /config.inc.php"
61
68
}
62
69
63
- latest=" $( curl -fsSL ' https://www.phpmyadmin.net/home_page/version.json' | jq -r ' .version' ) "
70
+ # Check script dependencies
71
+ command -v curl > /dev/null 2>&1 || { echo >&2 " 'curl' is required but not found. Aborting." ; exit 1; }
72
+ command -v jq > /dev/null 2>&1 || { echo >&2 " 'jq' is required but not found. Aborting." ; exit 1; }
73
+ [ -n " ${BASH_VERSINFO} " ] && [ -n " ${BASH_VERSINFO[0]} " ] && [ ${BASH_VERSINFO[0]} -ge 4 ] \
74
+ || { echo >&2 " Bash 4.0 or greater is required. Aborting." ; exit 1; }
75
+
76
+ # Create variants
77
+ latest=" $( curl -fsSL " https://www.phpmyadmin.net/home_page/version.json" | jq -r ' .version' ) "
64
78
sha256=" $( curl -fsSL " $( download_url " $latest " ) .sha256" | cut -f1 -d ' ' | tr -cd ' a-f0-9' | cut -c 1-64) "
65
79
66
- for variant in apache fpm fpm-alpine ; do
80
+ for variant in " ${variants[@]} " ; do
67
81
create_variant " $variant " " $latest " " $sha256 "
68
82
done
0 commit comments