#!/bin/sh # config maintainer script for zoneminder set -ex # Source the debconf stuff . /usr/share/debconf/confmodule # Set the first version in which dbconfig-common was introduced in the package dbc_first_version="1.28.0" CONFIGFILE=/etc/zm/zm.conf # Source the config file if exists if [ -e $CONFIGFILE ]; then . $CONFIGFILE || true else # Display a message and exit with error if no config file db_input high zoneminder/debconf_confmissingerror || true db_go || true exit 1 fi if [ ! "$ZM_DB_TYPE" = "mysql" ]; then # Display a message and exit with error if wrong database type db_input high zoneminder/debconf_dbtypeerror || true db_go || true exit 1 fi if [ -f /usr/share/dbconfig-common/dpkg/config ]; then # Currently we only support mysql database dbc_dbtypes="mysql" # Set authentication method to password dbc_authmethod_user="password" # Re-use data from ZM config file dbc_dbserver="$ZM_DB_HOST" dbc_dbname="$ZM_DB_NAME" dbc_dbuser="$ZM_DB_USER" # Source the dbconfig-common stuff . /usr/share/dbconfig-common/dpkg/config fi if [ "$1" = "configure" ]; then # Ask the user if debconf shall be used to configure the package db_input high zoneminder/debconf_install || true db_go || true # Exit if the user does not want to use debconf db_get zoneminder/debconf_install [ "$RET" = "false" ] && exit 0 fi if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then DB_OK=false # Ask the user if the database shall be installed locally or remotely db_input high zoneminder/debconf_dblocation || true db_go || true db_get zoneminder/debconf_dblocation if [ "$RET" = "local" ]; then if [ ! -e "/usr/sbin/mysqld" ]; then # Display a message if the user want a local database but no database # server is available db_input high zoneminder/debconf_dblocalmissingerror || true db_go || true else DB_OK=true # Set the database server to localhost dbc_dbserver="localhost" fi else # Source the dbconfig main configuration file if [ -f /etc/dbconfig-common/config ]; then . /etc/dbconfig-common/config fi if [ "$dbc_remote_questions_default" = "false" ]; then # Display a message if the dbconfig configuration does not allow # installation of databases on remote servers from this assistant # Note: It would be nice to override the default configuration by # setting dbc_remote_questions_default to true here but unfortunately # this does not work # https://bugs.launchpad.net/ubuntu/+source/dbconfig-common/+bug/1065331 db_input high zoneminder/debconf_dbconfigerror || true db_go || true else DB_OK=true fi fi #if [ "$1" = "configure" ] || [ "$1" = "reconfigure" ]; then # If db config is ok, ask the user for all other settings about the database [ "$DB_OK" = "true" ] && dbc_go zoneminder $@ # Ask the user for the web server(s) to configure db_input high zoneminder/webserver || true db_go || true # Ask the user for the password of the database administrator if the user # has not yet answered this question. This may happen if the user skipped # the database creation step when reconfiguring the package. RET="" db_get zoneminder/mysql/admin-pass if [ -z "$RET" ]; then db_input high zoneminder/mysql/admin-pass || true db_go || true fi # Ask for the password of 'admin' user while :; do RET="" db_input high zoneminder/admin_password || true db_go || true db_get zoneminder/admin_password # If password isn't empty we ask for password verification if [ -z "$RET" ]; then db_fset zoneminder/admin_password seen false db_fset zoneminder/admin_password_again seen false break fi ROOT_PW="$RET" db_input high zoneminder/admin_password_again || true db_go || true db_get zoneminder/admin_password_again if [ "$RET" = "$ROOT_PW" ]; then ROOT_PW="" break fi db_fset zoneminder/password_mismatch seen false db_input critical zoneminder/password_mismatch || true db_set zoneminder/admin_password "" db_set zoneminder/admin_password_again "" db_go || true done fi #DEBHELPER# exit 0