X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=debian%2Fpostinst;h=50ad721434f7cb6fb125c39e0a34b78809027cbe;hb=6ef5e36518e02beb14bf1d93d74081dd33fc1cf8;hp=72de9fbafc27a22aec43e3d7e046a5bdc2dcf739;hpb=0b467981e222732a353b5ebe299f5c6b206a99de;p=squirrelmail-change-pass-cn.git diff --git a/debian/postinst b/debian/postinst index 72de9fb..50ad721 100644 --- a/debian/postinst +++ b/debian/postinst @@ -5,89 +5,105 @@ set -e [ "$1" = "configure" ] || exit 0 [ $DEBIAN_SCRIPT_DEBUG ] && set -vx +# Include CARNet functions +. /usr/share/carnet-tools/functions.sh PKG="squirrelmail-change-pass-cn" -SQCONF=/etc/squirrelmail/config.php +VERSION="3.1.0" +SQCONFDIR="/etc/squirrelmail" +SQCONF="$SQCONFDIR/config.php" +need_restart=0 -# Include CARNet functions -. /usr/share/carnet-tools/functions.sh +# chk_conf_tag () +# +# Check if configuration file has CARNet package info lines. +# return: $RET => 0 - tagged +# 1 - file does not exists +# 2 - file exists, but it is not tagged +# +chk_conf_tag () { + local conf_file + conf_file="$1" + RET=1 + + if [ -f "$conf_file" ]; then + if egrep -q "^## Begin - Generated by CARNet package ${PKG}$" "$conf_file"; then + RET=0 + else + RET=2 + fi + fi +} # Configure poppassd to refuse connection from all hosts # but localhost (127.0.0.1). # -if [ -e /etc/hosts.deny -a -e /etc/hosts.allow ]; then - - if ! egrep -q '^poppassd:' /etc/hosts.deny; then - echo "poppassd: ALL" | cp-update "$PKG" /etc/hosts.deny - fi - - if ! egrep -q '^poppassd:' /etc/hosts.allow; then - echo "poppassd: 127.0.0.1" | cp-update "$PKG" /etc/hosts.allow - fi +if [ ! -f /etc/hosts.deny ]; then + touch /etc/hosts.deny +fi +if ! egrep -q '^poppassd:' /etc/hosts.deny; then + echo "poppassd: ALL" | cp-update "$PKG" /etc/hosts.deny +fi +if [ ! -f /etc/hosts.allow ]; then + touch /etc/hosts.allow +fi +if ! egrep -q '^poppassd:' /etc/hosts.allow; then + echo "poppassd: 127.0.0.1" | cp-update "$PKG" /etc/hosts.allow fi # Enable change_pass plugin in SquirrelMail config.php. # -if ! egrep '^\$plugins\[[0-9]+\][\ ]*=[\ ]*'\''change_pass'\' "$SQCONF"; then - - sq_last_plugin=`egrep '^\\$plugins\[[0-9]+\][\ ]*=[\ ]*'\' "$SQCONF" | sed 's/^.*\[//;s/\].*//' | sort -n | tail -n1` || true - - if [ -n "$sq_last_plugin" ]; then - - # Backup SquirrelMail configuration file. - cp_check_and_backup "$SQCONF" - - change_pass_num=$sq_last_plugin - let change_pass_num++ - - SQCONFTMP=`mktemp $SQCONF.tmp.XXXXXX` - - echo -n "CN: Enabling SquirrelMail change_pass plugin in $SQCONF" - sed '/^$plugins\[.*'${sq_last_plugin}'\]/a $plugins['${change_pass_num}'] = '\''change_pass'\'';' "$SQCONF" > "$SQCONFTMP" - cp_mv "$SQCONFTMP" "$SQCONF" - echo "." - fi - +if ! egrep -q '^\$plugins\[[0-9]+\][\ ]*=[\ ]*'\''change_pass'\' "$SQCONF"; then + squirrelmail-configure --install-plugin change_pass fi # Convert poppassd service from inetd.conf to xinetd.conf type. # Service configuration is saved in /etc/xinetd.d/ directory. # -if [ -x /etc/init.d/xinetd -a -d /etc/xinetd.d -a -x /usr/sbin/itox ]; then - - if egrep -q '^poppassd' /etc/inetd.conf && \ - [ ! -e /etc/xinetd.d/poppassd ]; then - - echo -n "CN: Enabling poppassd in /etc/xinetd.d/poppassd" - - touch /etc/xinetd.d/poppassd.$$ - grep "^poppassd" /etc/inetd.conf | \ - itox -daemon_dir /usr/sbin | cp-update "$PKG" /etc/xinetd.d/poppassd.$$ - cp_mv /etc/xinetd.d/poppassd.$$ /etc/xinetd.d/poppassd - - changed_config=1 - echo "." - fi +chk_conf_tag /etc/xinetd.d/poppassd +if [ $RET -lt 2 ]; then + cp_echo "CN: Enabling poppassd in /etc/xinetd.d/poppassd" + + if [ ! -d /etc/xinetd.d ]; then + mkdir -p /etc/xinetd.d/ + fi + touch /etc/xinetd.d/poppassd.$$ + cp-update "$PKG" /etc/xinetd.d/poppassd.$$ < /dev/null || do=start - -if [ "$do" ]; then - - if [ -x "/etc/init.d/xinetd" ]; then - if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then - invoke-rc.d xinetd "$do" || exit $? - else - /etc/init.d/xinetd "$do" || exit $? - fi - fi +if [ $need_restart -eq 1 ]; then + if [ -x "/etc/init.d/xinetd" ]; then + if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then + invoke-rc.d xinetd restart || exit $? + else + /etc/init.d/xinetd restart || exit $? + fi + fi fi + +# Mail root +# +cp_mail "$PKG" + +#DEBHELPER# + exit 0