aboutsummaryrefslogtreecommitdiff
path: root/www/openacs/files/adjust_pgsql_conf.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'www/openacs/files/adjust_pgsql_conf.sh.in')
-rw-r--r--www/openacs/files/adjust_pgsql_conf.sh.in74
1 files changed, 74 insertions, 0 deletions
diff --git a/www/openacs/files/adjust_pgsql_conf.sh.in b/www/openacs/files/adjust_pgsql_conf.sh.in
new file mode 100644
index 000000000000..8674e5b9a034
--- /dev/null
+++ b/www/openacs/files/adjust_pgsql_conf.sh.in
@@ -0,0 +1,74 @@
+#!/bin/sh
+# $FreeBSD$
+#
+# This script modifies the default "postgresql.conf" in PostgreSQL 8.1 and 8.2
+# installations, to suit the needs of OpenACS / .LRN
+#
+# Manual instructions:
+# http://openacs.org/xowiki/How_to_install_in_Postgres_8.x
+#
+# Usage: adjust_pgsql_conf.sh [path_to_postgresql.conf]
+#
+PGUSER=%%PGUSER%%
+LOCALBASE=%%LOCALBASE%%
+#
+AWK=%%AWK%%
+CP=%%CP%%
+GREP=%%GREP%%
+PW=%%PW%%
+SU=%%SU%%
+
+# Check if PostgreSQL version is >= 8.1.0
+if ! `${LOCALBASE}/bin/postmaster -V | ${AWK} -F '[ .]' '{if ($3==8 && $4>=1) {exit 0} else {exit 1}}'`; then
+ echo "You need PostgreSQL server 8.1 or higher installed."
+ exit 1
+fi
+
+# Check if user supplied a path or look for default postgresql.conf
+if [ "x${1}" = "x" ]; then
+ PGCONF=`${PW} usershow ${PGUSER} | ${AWK} -F: '{ print $9 }'`/data/postgresql.conf
+else
+ PGCONF=${1}
+fi
+
+if ! [ -f "${PGCONF}" ]; then
+ echo "ERROR: no such file: ${PGCONF}"; echo ""
+ echo "Maybe you use a different datadir or your database is not yet initialized"
+ echo "You can initialize your database with:"
+ echo "${LOCALBASE}/etc/rc.d/postgresql initdb"; echo ""
+ echo "Usage: $0 [path_to_postgresql.conf]"
+ exit 1
+fi
+
+# Very simple check if the file is a standard PostgreSQL configuration file
+if ! `${GREP} -qe '^# PostgreSQL configuration file' ${PGCONF}`; then
+ echo "ERROR: ${PGCONF} doesn't appear to be a default PostgreSQL database configuration file"
+ exit 1
+fi
+
+echo "Found ${PGCONF}"
+echo -n "Checking ... "
+
+MODIFY=no
+MISSING_FROM=no
+REGEX_FLAVOR=no
+WITH_OIDS=no
+
+# Check if we need to add anything
+if ! `${GREP} -qe '^add_missing_from = on' ${PGCONF}`; then MISSING_FROM=yes; MODIFY=yes; fi
+if ! `${GREP} -qe '^regex_flavor = extended' ${PGCONF}`; then REGEX_FLAVOR=yes; MODIFY=yes; fi
+if ! `${GREP} -qe '^default_with_oids = on' ${PGCONF}`; then WITH_OIDS=yes; MODIFY=yes; fi
+
+# Backup file and add configuration lines, if necessary
+if [ ${MODIFY} = "no" ]; then
+ echo "no modifications necessary"
+else
+ echo "needs to be modified"
+ echo "Backing up old configuration file to ${PGCONF}.bak"
+ ${CP} -p ${PGCONF} ${PGCONF}.bak
+ if [ ${MISSING_FROM} = "yes" ]; then echo "add_missing_from = on" >> ${PGCONF}; fi
+ if [ ${REGEX_FLAVOR} = "yes" ]; then echo "regex_flavor = extended" >> ${PGCONF}; fi
+ if [ ${WITH_OIDS} = "yes" ]; then echo "default_with_oids = on" >> ${PGCONF}; fi
+ echo "File successfully modified."
+ echo "Please restart your PostgreSQL server (if running)."
+fi