Prilagodba paketa za novi paket squirrelmail-change-pass.
[squirrelmail-change-pass-cn.git] / debian / postinst
index f515ad7..75d66d1 100644 (file)
@@ -70,33 +70,53 @@ if ! egrep -q '^poppassd:' /etc/hosts.allow; then
 fi
 
 
-# Configure SquirrelMail change_pass plugin - using defaults,
-# no configuration files if earlier version is older than 3.0-1.
+# First of all, do the backup.
+#
+done_backup=0
+for cpconf_file in $SQCPCONF $CPCONF; do
+    if [ -f "$cpconf_file" ] && [ ! -L "$cpconf_file" ]; then
+        cp_echo "CN: Doing backup for $cpconf_file"
+        cp_backup_conffile -d "/var/backups/$PKG" -p $cpconf_file
+        done_backup=1
+    fi
+done
+if [ $done_backup -eq 1 ]; then
+    cp_echo "CN: Backup is located in directory: /var/backups/$PKG/"
+fi
+
+
+# Remove change_pass configuration files if earlier version is
+# older than 3.0-1.
 #
 if [ "$2" ] && dpkg --compare-versions $2 lt 3.0-1; then
 
     cp_echo "CN: This version of change_pass plugin contains major changes."
-    cp_echo "CN: For detailed description, see documentation in /usr/share/doc/$PKG/."
-
-    if [ -f "$SQCPCONF" ]; then
-        mv -f "$SQCPCONF" "$SQCPCONF.cn-old"
-        cp_echo "CN: Old $SQCPCONF disabled and renamed to $SQCPCONF.cn-old."
-    fi
-    if [ -f "$CPCONF" ]; then
-        mv -f "$CPCONF" "$CPCONF.cn-old"
-        cp_echo "CN: Old $CPCONF disabled and renamed to $CPCONF.cn-old."
-    fi
+    for cpconf_file in $SQCPCONF $CPCONF; do
+        if [ -f "$cpconf_file" ] || [ -L "$cpconf_file" ]; then
+            rm -f $cpconf_file
+            cp_echo "CN: Removed old $cpconf_file"
+        fi
+    done
 fi
 
 
-# Check for change_pass configuration file and notify user about
+# Check for change_pass configuration files and notify user about
 # minimum password length configuration.
 #
-if [ ! -f "$SQCPCONF" ] && [ ! -f "$CPCONF" ]; then
+if egrep -q '^\$plugins\[[0-9]+\][\ ]*=[\ ]*'\''change_pass'\' "$SQCONF"; then
+    /usr/sbin/squirrelmail-configure --remove-plugin change_pass
+fi
+
+if [ ! -f "$SQCPCONF" ]; then
 
-    # Configuration file does not exist.
-    cp_echo "CN: Generating new file $CPCONF"
-    cat > "$CPCONF" <<EOF
+    if [ -f "$CPCONF" ]; then
+        cp -f "$CPCONF" "$SQCPCONF"
+        cp_echo "CN: $CPCONF copied to $SQCPCONF"
+    else
+
+        # Configuration file does not exist.
+        cp_echo "CN: Generating new file $SQCPCONF"
+        cat > "$SQCPCONF" <<EOF
 <?php
 //// Begin - Generated by CARNet package $PKG
 //
@@ -114,47 +134,43 @@ if [ ! -f "$SQCPCONF" ] && [ ! -f "$CPCONF" ]; then
 
     \$max_pass_length = 9999999;
 EOF
-    min_pass_changed=1
-else
-
-    # Checking for configuration file/s and minimum password length.
-    echo "CN: Checking for minimum password length configuration."
-    cn_tag_re="^\/\/\/\/ Begin - Generated by CARNet package $PKG$"
-
-    for cpconf_file in $SQCPCONF $CPCONF; do
-
-        min_pass_changed=0
-        if [ -f "$cpconf_file" ]; then
+        min_pass_changed=1
+    fi
+fi
 
-            seddef="/^[[:space:]]*\\\$min_pass_length[[:space:]]*=[^;]*;[[:space:]]*$/d;
-                    s/\\\$min_pass_length[[:space:]]*=[^;]*;//g;"
+if [ $min_pass_changed -eq 0 ]; then
 
-            if egrep -q "$cn_tag_re" "$cpconf_file"; then
+    echo "CN: Checking for minimum password length configuration."
 
-                # Configuration file is tagged by CARNet.
-                seddef="$seddef /^\/\/\/\/ End - Generated by CARNet package $PKG$/s/\(.*\)/\1\n"
-                seddef="$seddef    \\\$min_pass_length = 8;/"
+    cn_tag_re="^\/\/\/\/ Begin - Generated by CARNet package $PKG$"
+    seddef="/^[[:space:]]*\\\$min_pass_length[[:space:]]*=[^;]*;[[:space:]]*$/d;
+            s/\\\$min_pass_length[[:space:]]*=[^;]*;//g;"
 
-                set_min_pass_length "$seddef" "$cpconf_file"
-            else
+    if egrep -q "$cn_tag_re" "$SQCPCONF"; then
 
-                if [ "$2" ] && dpkg --compare-versions $2 lt 3.0-2; then
+        # Configuration file is tagged by CARNet.
+        seddef="$seddef /^\/\/\/\/ End - Generated by CARNet package $PKG$/s/\(.*\)/\1\n"
+        seddef="$seddef    \\\$min_pass_length = 8;/"
+        set_min_pass_length "$seddef" "$SQCPCONF"
+    else
 
-                    # Add CARNet package info lines to config's header and set up $min_pass_length.
-                    seddef="$seddef 0,/?>/s/^[[:space:]]*\(<?php\|<?\)\(.*\)/\1\n"
-                    seddef="$seddef\/\/\/\/ Begin - Generated by CARNet $PKG\n\/\/\n"
-                    seddef="$seddef\/\/  REMOVE this whole block if you DON'T WANT $PKG\n"
-                    seddef="$seddef\/\/  to edit your configuration file.\n\/\/\n"
-                    seddef="$seddef\/\/\/\/ End - Generated by CARNet package $PKG\n"
-                    seddef="$seddef    \\\$min_pass_length = 8;\n\2/"
+        if dpkg --compare-versions "$2" lt 3.0-2; then
 
-                    set_min_pass_length "$seddef" "$cpconf_file"
-                fi
-            fi
+            # Add CARNet package info lines to config's header and set up $min_pass_length.
+            seddef="$seddef 0,/?>/s/^[[:space:]]*\(<?php\|<?\)\(.*\)/\1\n"
+            seddef="$seddef\/\/\/\/ Begin - Generated by CARNet $PKG\n\/\/\n"
+            seddef="$seddef\/\/  REMOVE this whole block if you DON'T WANT $PKG\n"
+            seddef="$seddef\/\/  to edit your configuration file.\n\/\/\n"
+            seddef="$seddef\/\/\/\/ End - Generated by CARNet package $PKG\n"
+            seddef="$seddef    \\\$min_pass_length = 8;\n\2/"
+            set_min_pass_length "$seddef" "$cpconf_file"
         fi
-    done
+    fi
 fi
 
+# Just to be sure.
+ln -sf "$SQCPCONF" "$CPCONF"
+
 if [ $min_pass_changed -eq 1 ]; then
     db_fset squirrelmail-change-pass-cn/min_pass_length seen false
     db_title squirrelmail-change-pass-cn - konfiguracija
@@ -174,7 +190,6 @@ if ! egrep -q '^\$plugins\[[0-9]+\][\ ]*=[\ ]*'\''change_pass'\' "$SQCONF"; then
         cp_echo "CN: Old $SQCONF saved as \"/var/backups/${SQCONF##*/}.bak\"."
     fi
 
-    cp_echo "CN: Enabling SquirrelMail change_pass plugin in $SQCONF"
     /usr/sbin/squirrelmail-configure --install-plugin change_pass
 fi
 
@@ -184,18 +199,18 @@ fi
 #
 if [ -x /etc/init.d/xinetd -a -d /etc/xinetd.d -a -x /usr/sbin/itox ]; then
 
-  if egrep -q '^poppassd' /etc/inetd.conf && \
-     [ ! -f /etc/xinetd.d/poppassd ]; then
+    if egrep -q '^poppassd' /etc/inetd.conf && \
+        [ ! -f /etc/xinetd.d/poppassd ]; then
 
-       cp_echo "CN: Enabling poppassd in /etc/xinetd.d/poppassd"
+        cp_echo "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
+        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
 
-       need_restart=1
-  fi
+        need_restart=1
+    fi
 fi
 
 
@@ -203,13 +218,13 @@ 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
+    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