1
1
#! /bin/bash
2
- set -eo pipefail
2
+ set -Eeuo pipefail
3
3
4
4
cd " $( dirname " $( readlink -f " $BASH_SOURCE " ) " ) "
5
5
@@ -26,27 +26,28 @@ declare -A alpineVersion=(
26
26
[10]=' 3.6'
27
27
)
28
28
29
+ packagesBase=' http://apt.postgresql.org/pub/repos/apt/dists/'
30
+
29
31
# https://www.mirrorservice.org/sites/ftp.ossp.org/pkg/lib/uuid/?C=M;O=D
30
32
osspUuidVersion=' 1.6.2'
31
33
osspUuidHash=' 11a615225baa5f8bb686824423f50e4427acd3f70d394765bdff32801f0fd5b0'
32
34
33
- lastSuite=
35
+ declare -A suitePackageList
34
36
travisEnv=
35
37
for version in " ${versions[@]} " ; do
36
- if [ " ${debianSuite[$version]} " != " $lastSuite " ]; then
37
- lastSuite=" ${debianSuite[$version]} "
38
- packagesBase=' http://apt.postgresql.org/pub/repos/apt/dists/' " ${debianSuite[$version]} " ' -pgdg'
39
- mainList=" $( curl -fsSL " $packagesBase /main/binary-amd64/Packages.bz2" | bunzip2) "
38
+ suite=" ${debianSuite[$version]} "
39
+ if [ -z " ${suitePackageList["$suite"]: +isset} " ]; then
40
+ suitePackageList[" $suite " ]=" $( curl -fsSL " ${packagesBase} /${suite} -pgdg/main/binary-amd64/Packages.bz2" | bunzip2) "
40
41
fi
41
42
42
- versionList=" $( echo " $mainList " ; curl -fsSL " $packagesBase / $ version /binary-amd64/Packages.bz2" | bunzip2) "
43
+ versionList=" $( echo " ${suitePackageList["$suite"]} " ; curl -fsSL " ${ packagesBase} / ${suite} -pgdg/ ${ version} /binary-amd64/Packages.bz2" | bunzip2) "
43
44
fullVersion=" $( echo " $versionList " | awk -F ' : ' ' $1 == "Package" { pkg = $2 } $1 == "Version" && pkg == "postgresql-' " $version " ' " { print $2; exit }' || true) "
44
45
(
45
46
set -x
46
47
cp docker-entrypoint.sh " $version /"
47
48
sed -e ' s/%%PG_MAJOR%%/' " $version " ' /g;' \
48
49
-e ' s/%%PG_VERSION%%/' " $fullVersion " ' /g' \
49
- -e ' s/%%DEBIAN_SUITE%%/' " ${debianSuite[$version]} " ' /g' \
50
+ -e ' s/%%DEBIAN_SUITE%%/' " $suite " ' /g' \
50
51
Dockerfile-debian.template > " $version /Dockerfile"
51
52
if [ " $version " = ' 10' ]; then
52
53
# postgresql-contrib-10 package does not exist, but is provided by postgresql-10
@@ -60,7 +61,8 @@ for version in "${versions[@]}"; do
60
61
# TODO figure out what to do with odd version numbers here, like release candidates
61
62
srcVersion=" ${fullVersion%% -* } "
62
63
# change "10~beta1" to "10beta1" for ftp urls
63
- srcVersion=" ${srcVersion// \~ / } "
64
+ tilde=' ~'
65
+ srcVersion=" ${srcVersion// $tilde / } "
64
66
srcSha256=" $( curl -fsSL " https://ftp.postgresql.org/pub/source/v${srcVersion} /postgresql-${srcVersion} .tar.bz2.sha256" | cut -d' ' -f1) "
65
67
for variant in alpine; do
66
68
if [ ! -d " $version /$variant " ]; then
0 commit comments