summaryrefslogtreecommitdiffstats
path: root/postgresql-check-db-dir.in
diff options
context:
space:
mode:
authorPavel Raiskup <praiskup@redhat.com>2014-07-04 10:29:36 +0200
committerPavel Raiskup <praiskup@redhat.com>2014-07-04 10:45:22 +0200
commit7bc6b1e356a0c157e575167c6fa57f647f52d601 (patch)
treebef38a1ebc44aa5ad3478eb578e582b84b27ddb6 /postgresql-check-db-dir.in
parent7a9df4d2886ef19417db9f4cf0c65b3160f877fc (diff)
downloadpostgresql-setup-7bc6b1e356a0c157e575167c6fa57f647f52d601.tar.gz
postgresql-setup-7bc6b1e356a0c157e575167c6fa57f647f52d601.tar.xz
postgresql-setup-7bc6b1e356a0c157e575167c6fa57f647f52d601.zip
service: avoid cryptic failure with old config
If user removes currently provided /etc/postgresql/postgresql configuration file, PGDATA env variable is not set. The `systemctl start postgresql` would fail similarly to `systemctl start postgresql@NOTCONFIGURED` when the configuration file was not created yet with cryptic message "Usage: ... " Stop this behavior rather explicitly with proper error in check-db-dir script. Warn also user in similar fashion that the configuration should be adjusted in case the PGDATA was set directly in service file.
Diffstat (limited to 'postgresql-check-db-dir.in')
-rw-r--r--postgresql-check-db-dir.in26
1 files changed, 22 insertions, 4 deletions
diff --git a/postgresql-check-db-dir.in b/postgresql-check-db-dir.in
index 3514247..2dd0649 100644
--- a/postgresql-check-db-dir.in
+++ b/postgresql-check-db-dir.in
@@ -7,14 +7,32 @@
# bit slow to mount. But we can at least emit a message advising newbies
# what to do.
-PGDATA="$1"
+if test -z "$1"; then
+ echo "Maintainer error: $0 must be run with one argument"
+ exit 1
+fi
+
+service_name="$1"
+
+if [ -z "$PGDATA" ]; then
+ echo $"You try to start '$service_name' service"
+ echo $"but the required \$PGDATA environment variable is not set."
+ echo $"You should use the @PKGCONFIG_DIR@/$service_name"
+ echo $"configuration file to set \$PGDATA. For more info see"
+ echo $"the @README_DIST@ file."
-if [ -z "$PGDATA" ]
-then
- echo "Usage: $0 database-path"
exit 1
fi
+# Warn the user that the configuration should be adjusted.
+conf_file="@PKGCONFIG_DIR@/$service_name"
+if test ! -r "$conf_file"; then
+ echo >&2 $"WARNING: Note that file '$conf_file'"
+ echo >&2 $"does not exist. Your configuration will be supported for some"
+ echo >&2 $"time but you are encouraged to create this file according to"
+ echo >&2 $"@README_DIST@ documentation."
+fi
+
# Full PostgreSQL version, e.g. 9.0.2
PGVERSION=@PGVERSION@