#! /bin/sh # postinst maintainer script for zoneminder-core package set -e # Source the debconf stuff . /usr/share/debconf/confmodule # Source the config file CONFIGFILE=/etc/zm/zm.conf . $CONFIGFILE # Do this when the package is installed, upgraded or reconfigured if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then # Retrieve data from dbconfig (inputs from user) . /etc/dbconfig-common/zoneminder.conf # ZoneMinder config file handling # Inspired by: http://manpages.debian.org/cgi-bin/man.cgi?query=debconf-devel&sektion=7 # Backup the config file cp -a -f $CONFIGFILE ${CONFIGFILE}.postinst.bak # Redeclare variables if missing in config file test -z $dbc_dbserver || grep -Eq "^ *ZM_DB_HOST=" $CONFIGFILE \ || echo "ZM_DB_HOST=" >> ${CONFIGFILE}.postinst.bak test -z $dbc_dbname || grep -Eq "^ *ZM_DB_NAME=" $CONFIGFILE \ || echo "ZM_DB_NAME=" >> ${CONFIGFILE}.postinst.bak test -z $dbc_dbuser || grep -Eq "^ *ZM_DB_USER=" $CONFIGFILE \ || echo "ZM_DB_USER=" >> ${CONFIGFILE}.postinst.bak test -z $dbc_dbpass || grep -Eq "^ *ZM_DB_PASS=" $CONFIGFILE \ || echo "ZM_DB_PASS=" >> ${CONFIGFILE}.postinst.bak # Prevent ZM_DB_HOST to be empty if user selected the 'unix socket' method if test -z $dbc_dbserver; then dbc_dbserver_override="localhost" else dbc_dbserver_override=$dbc_dbserver fi # Update variables in config file sed -i "s/^ *ZM_DB_HOST=.*/ZM_DB_HOST=$dbc_dbserver_override/" \ ${CONFIGFILE}.postinst.bak test -z $dbc_dbname || sed -i "s/^ *ZM_DB_NAME=.*/ZM_DB_NAME=$dbc_dbname/" \ ${CONFIGFILE}.postinst.bak test -z $dbc_dbuser || sed -i "s/^ *ZM_DB_USER=.*/ZM_DB_USER=$dbc_dbuser/" \ ${CONFIGFILE}.postinst.bak test -z $dbc_dbpass || sed -i "s/^ *ZM_DB_PASS=.*/ZM_DB_PASS=$dbc_dbpass/" \ ${CONFIGFILE}.postinst.bak # Clean-up backup file mv -f ${CONFIGFILE}.postinst.bak $CONFIGFILE # Set some file permissions chown $ZM_WEB_USER:$ZM_WEB_GROUP /var/log/zm if [ -z "$2" ]; then chown $ZM_WEB_USER:$ZM_WEB_GROUP -R /var/cache/zoneminder fi # As requested by the Debian Webapps Policy Manual ยง3.2.1 chown root:${ZM_WEB_GROUP} $CONFIGFILE chmod 640 $CONFIGFILE fi # Do this every time the package is installed or upgraded # Test for database presence to avoid failure of zmupdate.pl if [ "$dbc_install" = "true" ] && [ "$1" = "configure" ]; then # Ensure zoneminder is stopped deb-systemd-invoke stop zoneminder-core.service || exit $? # Run the ZoneMinder update tool zmupdate.pl --nointeractive fi #DEBHELPER# exit 0