freebsd-ports/www/openacs/files/adjust_pgsql_conf.sh.in
Martin Matuska 97298a197c - Update openacs to 5.3.2
- Depend on devel/tcllib and devel/tcllthread
- Add script for adjusting postgresql.conf
- Improve installation documentation
- Bump dotlrn portrevision
- Other small fixes and improvements

Approved by:	garga (mentor, implicit)
2007-08-02 13:10:49 +00:00

74 lines
2.4 KiB
Bash

#!/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