. /usr/share/carnet-tools/functions.sh
PKG="squirrelmail-change-pass-cn"
-VERSION="3.0-2"
+VERSION="3.0.2"
SQCONFDIR="/etc/squirrelmail"
SQCONF="$SQCONFDIR/config.php"
SQCPCONF="$SQCONFDIR/config_change_pass.php"
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
- # Configuration file does not exist.
- cp_echo "CN: Generating new file $CPCONF"
- cat > "$CPCONF" <<EOF
+if [ ! -f "$SQCPCONF" ]; then
+
+ 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
//
\$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 package $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" "$SQCPCONF"
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
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
#
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
#
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
#
cp_mail "$PKG"
+#DEBHELPER#
+
exit 0