TASKPM/debian/libreplan.postinst

125 lines
3.6 KiB
Bash

#! /bin/bash
set -e
# If the database exists already *before* running dbconfig, it means that
# an upgrade is being done. In case PostgreSQL 8.x is being used, make
# sure that support for plpgsql is enabled. This is needed starting with
# Libreplan 1.3
#
if [[ $1 = configure && -r /etc/dbconfig-common/libreplan.conf ]]
then
PGSQL_MAJOR=$(createlang --version |
sed -e '1s/^[^0-9]*\([0-9]\+\)\..*$/\1/p' -e d)
if [[ ${PGSQL_MAJOR} -eq 8 ]]
then
. /etc/dbconfig-common/libreplan.conf
conn_args=""
if [[ ${dbc_dbserver} != localhost ]] ; then
conn_args="${conn_args} --host='${dbc_dbserver}'"
fi
if [[ -n ${dbc_dbport} ]] ; then
conn_args="${conn_args} --port=${dbc_dbport}"
fi
su postgres -c "createlang -d ${dbc_dbname} ${conn_args} plpgsql" || true
fi
fi
. /usr/share/debconf/confmodule
. /usr/share/dbconfig-common/dpkg/postinst.pgsql
dbc_go libreplan $@
if [[ $1 = configure && -r /etc/dbconfig-common/libreplan.conf ]]
then
. /etc/dbconfig-common/libreplan.conf
if [ -z "${dbc_dbserver}" ] ; then
database_host='localhost'
else
database_host=${dbc_dbserver}
fi
echo "Adding libreplan Tomcat configuration bits"
# Remove first (just in case!)
sed -i -e '/begin:libreplan/,/end:libreplan/d' /etc/tomcat6/policy.d/03catalina.policy
sed -i -e '/begin:libreplan/,/end:libreplan/d' /etc/tomcat6/context.xml
# Modify /etc/tomcat6/context.xml
#
saved_ifs=${IFS}
IFS=$'\n'
{ cat /etc/tomcat6/context.xml; echo; } |
while read -r line ; do
if [[ ${line} = *\</Context\>* ]] ; then
cat <<-EOF
<!-- begin:libreplan -->
<Resource name="jdbc/libreplan-ds" auth="Container"
type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="${dbc_dbuser}" password="${dbc_dbpass}"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://${database_host}/${dbc_dbname}"/>
<!-- end:libreplan -->
EOF
fi
echo "${line}"
done > /etc/tomcat6/context.xml.new
IFS=${saved_ifs}
mv /etc/tomcat6/context.xml.new \
/etc/tomcat6/context.xml
# Modify /etc/tomcat6/policy.d/03catalina.policy
#
saved_ifs=${IFS}
IFS=$'\n'
while read -r line ; do
echo "${line}"
if [[ ${line} = *tomcat-juli.jar* ]] ; then
echo ' // begin:libreplan'
echo ' permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}libreplan-webapp${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";'
echo ' // end:libreplan'
fi
done < /etc/tomcat6/policy.d/03catalina.policy \
> /etc/tomcat6/policy.d/03catalina.policy.new
IFS=${saved_ifs}
mv /etc/tomcat6/policy.d/03catalina.policy.new \
/etc/tomcat6/policy.d/03catalina.policy
fi
if [ ! -L /usr/share/tomcat6/lib/postgresql-jdbc3.jar ] ; then
ln -sf /usr/share/java/postgresql-jdbc3.jar /usr/share/tomcat6/lib/
fi
if [ -x /etc/init.d/tomcat6 ] ; then
if [ -x "$(which invoke-rc.d 2> /dev/null)" ] ; then
invoke-rc.d tomcat6 stop
else
/etc/init.d/tomcat6 stop
fi
fi
if [ -d /var/lib/tomcat6/webapps/libreplan/ ] ; then
rm -rf /var/lib/tomcat6/webapps/libreplan/
fi
if [ -x /etc/init.d/tomcat6 ] ; then
if [ -x "$(which invoke-rc.d 2> /dev/null)" ] ; then
invoke-rc.d tomcat6 start
else
/etc/init.d/tomcat6 start
fi
fi
echo 'Please review the Tomcat6 memory configuration in your server at /etc/default/tomcat6 file.
Furthermore, in order to have printing working properly if you are in Debian Squeeze you have to install CutyCapt package from Wheezy (testing).
You can find more information about these issues at INSTALL file or in the following link: https://libreplan.dev/INSTALL.html'
#DEBHELPER#