X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?p=squirrelmail-change-pass-cn.git;a=blobdiff_plain;f=debian%2Fpostinst;fp=debian%2Fpostinst;h=f515ad7d70354eca9ee90ea55599266b60f93e78;hp=f56b7aca18d4a5e444bda3e08bd851bf707062c6;hb=849101efcfa61514aed2280735a17d8551bca5af;hpb=83f37b8fd3d56064545b37748c3c511545eb9000 diff --git a/debian/postinst b/debian/postinst index f56b7ac..f515ad7 100644 --- a/debian/postinst +++ b/debian/postinst @@ -6,17 +6,51 @@ set -e [ $DEBIAN_SCRIPT_DEBUG ] && set -vx +# Load debconf +. /usr/share/debconf/confmodule + +# Include CARNet functions +. /usr/share/carnet-tools/functions.sh + PKG="squirrelmail-change-pass-cn" -VERSION="3.0-1" +VERSION="3.0-2" SQCONFDIR="/etc/squirrelmail" SQCONF="$SQCONFDIR/config.php" SQCPCONF="$SQCONFDIR/config_change_pass.php" CPCONF="/usr/share/squirrelmail/plugins/change_pass/config.php" need_restart=0 +min_pass_changed=0 +temp_files= +set_min_pass_length () { -# Include CARNet functions -. /usr/share/carnet-tools/functions.sh + local sed_re conf_file + conf_re="$1" + conf_file="$2" + temp_files="$temp_files $conf_file.dpkg-tmp" + + sed "$conf_re" "$conf_file" > "$conf_file.dpkg-tmp" + + if ! cmp -s "$conf_file" "$conf_file.dpkg-tmp" 2>&1 >/dev/null; then + cp_mv "$conf_file.dpkg-tmp" "$conf_file" + min_pass_changed=1 + else + rm -f "$conf_file.dpkg-tmp" + fi +} + +cleanup () { + + if [ -n "$temp_files" ]; then + for temp_item in $temp_files; do + if [ -e "$temp_item" ]; then + rm -f $temp_item + fi + done + fi +} + +trap cleanup 0 1 2 15 # Configure poppassd to refuse connection from all hosts @@ -37,21 +71,100 @@ fi # Configure SquirrelMail change_pass plugin - using defaults, -# no configuration files. +# no configuration files if earlier version is older than 3.0-1. # -if [ "$2" ] && dpkg --compare-versions $2 lt $VERSION; then +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 fi -if [ -f "$SQCPCONF" ]; then - mv -f "$SQCPCONF" "$SQCPCONF.cn-old" - cp_echo "CN: Old $SQCPCONF disabled and renamed to $SQCPCONF.cn-old." + + +# Check for change_pass configuration file and notify user about +# minimum password length configuration. +# +if [ ! -f "$SQCPCONF" ] && [ ! -f "$CPCONF" ]; then + + # Configuration file does not exist. + cp_echo "CN: Generating new file $CPCONF" + cat > "$CPCONF" <