Prva inacica paketa za Debian wheezy distribuciju.
[webalizer-cn.git] / debian / postinst
index 79c7040..2203c52 100755 (executable)
@@ -5,23 +5,24 @@ set -e
 [ "$DEBIAN_SCRIPT_DEBUG" ] && set -vx
 
 case "$1" in
-       configure)
-       # continue below
-       ;;
-
-       abort-upgrade|abort-remove|abort-deconfigure)
-       exit 0
-       ;;
-
-       *)
-       echo "postinst called with unknown argument \`$1'" >&2
-       exit 0
-       ;;
+    configure)
+    # continue below
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    exit 0
+    ;;
+
+    *)
+    echo "postinst called with unknown argument \`$1'" >&2
+    exit 0
+    ;;
 esac
 
 
 # Load debconf
 . /usr/share/debconf/confmodule
+db_version 2.0
 
 # Include CARNet functions
 . /usr/share/carnet-tools/functions.sh
@@ -31,35 +32,41 @@ WDIR="/var/www/webalizer"
 WHTPASSWD="$WDIR/.htpasswd"
 WCONF="/etc/webalizer/webalizer.conf"
 WCONFBAK=`basename $WCONF`
-oldreporttitle="Usage Statistics for"
+oldreporttitle="usage statistics for"
 reporttitle="Statistika pristupa za"
 
+customized=0
+need_restart=0
 
 if [ -f "$WCONF" ]; then
 
-       # Backup first.
-       if cp_check_and_backup "$WCONF"; then
-               cp_echo "CN: Old $WCONF saved as \"/var/backups/$WCONFBAK.bak\"."
-       fi
-
-       # Check for OutputDir
-       temp=`awk 'tolower($1) == "outputdir" { print $2; }' $WCONF | tail -n 1`
-       if [ "$temp" != "$WDIR" ]; then
-               db_set webalizer/directory "$temp" || true
-       fi
-
-       # Check for ReportTitle
-       temp=`awk 'tolower($1) == "reporttitle" { for(i=2; i<NF; i++) printf("%s ", $i); print $(NF) }' $WCONF | tail -n 1`
-       if [ "$temp" = "$oldreporttitle" ]; then
-
-               temp_re="^[[:space:]]*ReportTitle[[:space:]]*${oldreporttitle}$"
-               cp_check_and_sed "." \
-                       "s/$temp_re/ReportTitle ${reporttitle}/I" \
-                       "$WCONF" || true
-               db_set webalizer/doc_title "$reporttitle" || true
-       fi
+    # Backup first.
+    if cp_check_and_backup "$WCONF"; then
+        cp_echo "CN: Old $WCONF saved as \"/var/backups/$WCONFBAK.bak\"."
+    fi
+
+    # Check for OutputDir
+    temp=`awk 'tolower($1) == "outputdir" { print $2; }' $WCONF | tail -n 1`
+    if [ "$temp" != "$WDIR" ]; then
+        cp_echo "CN: Found custom OutputDir value: $temp"
+        db_set webalizer/directory "$temp" || true
+        customized=1
+    fi
+
+    # Check for ReportTitle
+    temp=`awk 'tolower($1) == "reporttitle" { for(i=2; i<NF; i++) \
+          printf("%s ", tolower($i)); print tolower($(NF)) }' $WCONF | tail -n 1`
+    if [ "$temp" = "$oldreporttitle" ]; then
+        temp_re="^[[:space:]]*ReportTitle[[:space:]]*${oldreporttitle}$"
+        cp_check_and_sed "." \
+            "s/$temp_re/ReportTitle    ${reporttitle}/I" \
+            "$WCONF" || true
+        db_set webalizer/doc_title "$reporttitle" || true
+        need_restart=1
+    fi
 else
-       cp_echo "CN: Configuration file $WCONF is missing."
+    cp_echo "CN: Configuration file $WCONF is missing."
+    customized=1
 fi
 
 db_stop || true
@@ -67,40 +74,43 @@ db_stop || true
 
 # Check Apache2 web server configuration and reload Apache2 web server.
 #
-if /usr/sbin/apache2ctl configtest 2>/dev/null; then
-
-       # Reload Apache2 web server.
-       if [ -x "/etc/init.d/apache2" ]; then
-           if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
-               invoke-rc.d apache2 reload || true
-           else
-               /etc/init.d/apache2 reload || true
-           fi
-       fi
-else
-
-       # Something is broken.
-       cp_echo "CN: Your Apache2 configuration is broken."
-       cp_echo "CN: Please, check the service after the installation finishes!"
+if [ $need_restart -eq 1 ]; then
+    if apache2ctl configtest 2>/dev/null; then
+        invoke-rc.d apache2 force-reload || true
+    else
+        # Something is broken.
+        cp_echo "CN: Your Apache2 configuration is broken."
+        cp_echo "CN: Please, check the service after the installation finishes!"
+    fi
 fi
 
 
 # Generate e-mail message with informations (username and password).
 #
-if [ ! -f "$WHTPASSWD" ]; then
-       passwd=`makepasswd --chars 8`
-       htpasswd -bcm $WHTPASSWD admin $passwd 2> /dev/null
-       cp_echo ""
-       cp_echo "CN: Webalizer URL is http://`hostname -f`/stats/"
-       cp_echo "CN:            User: admin"
-       cp_echo "CN:        Password: $passwd"
+if [ $customized -eq 0 ]; then
+    if [ ! -f "$WHTPASSWD" ]; then
+        passwd="$(makepasswd --chars 8)"
+        htpasswd -bcm $WHTPASSWD admin $passwd 2> /dev/null
         cp_echo ""
-       cp_echo "CN: Use \"htpasswd -m $WHTPASSWD admin\" to change it."
+        cp_echo "CN: Webalizer URL is http://`hostname -f`/stats/"
+        cp_echo "CN:            User: admin"
+        cp_echo "CN:        Password: $passwd"
+        cp_echo ""
+        cp_echo "CN: Use \"htpasswd -m $WHTPASSWD admin\" to change it."
+    else
+        cp_echo "CN: File $WHTPASSWD already exists."
+    fi
+else
+    cp_echo "CN: Skipping file $WHTPASSWD"
 fi
 
-
 # Mail root.
 #
 cp_mail "$PKG"
 
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
 exit 0