summaryrefslogtreecommitdiffstats
path: root/postgresql-tests/gen-data/prep
diff options
context:
space:
mode:
Diffstat (limited to 'postgresql-tests/gen-data/prep')
-rwxr-xr-xpostgresql-tests/gen-data/prep44
1 files changed, 41 insertions, 3 deletions
diff --git a/postgresql-tests/gen-data/prep b/postgresql-tests/gen-data/prep
index b5b19b5..d83dc6b 100755
--- a/postgresql-tests/gen-data/prep
+++ b/postgresql-tests/gen-data/prep
@@ -1,5 +1,43 @@
#!/bin/bash
-yum install -y wget postgresql-server unzip
-echo "LANG=en_US.UTF-8" > /etc/locale.conf
-rm -rf /var/lib/pgsql/data
+. /etc/os-release 2>/dev/null
+
+: "${VERSION_ID=0}"
+
+pkgmanager=yum
+
+verbose() { echo "$0: $*" ; }
+die() { echo "$*" ; exit 1; }
+
+awk_cmd='
+ /^Environment=PGDATA=\/var\/lib\/pgsql\/data$/ {
+ sub("/data", "/data/data");
+ print;
+ t = 1;
+ next;
+ }
+ /^OOMScoreAdjust=-1000$/ {
+ next ;
+ }
+ { print; }
+ END {exit (!t)}
+'
+
+test x"${ID}" = xfedora && test "$VERSION_ID" -gt 21 && pkgmanager=dnf
+
+verbose "installing necessary packages ($pkgmanager)"
+$pkgmanager install -y wget postgresql-server unzip initscripts
+
+verbose "setting up proper datadir"
+service_file=/usr/lib/systemd/system/postgresql.service
+{
+ cp "$service_file" "$service_file~" && \
+ awk "$awk_cmd" < "$service_file~" > "$service_file"
+} || die "can't set datadir to /var/lib/pgsql/data/data"
+
+loc="LANG=en_US.UTF-8"
+verbose "setting locale to $loc"
+echo "$loc" > /etc/locale.conf
+
+verbose "removing datadir"
+rm -rf /var/lib/pgsql/data/data