97298a197c
- 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)
74 lines
2.4 KiB
Bash
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
|