#! /bin/sh
# postinst script for jsboard
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package
#
# quoting from the policy:
#     Any necessary prompting should almost always be confined to the
#     post-installation script, and should be protected with a conditional
#     so that unnecessary prompting doesn't happen if a package's
#     installation fails and the `postinst' is called with `abort-upgrade',
#     `abort-remove' or `abort-deconfigure'.

. /usr/share/debconf/confmodule

db_version 2.0
db_title jsboard

if [ "$DPKG_DEBUG" = "developer" ]; then
   set -x
 fi
 
################################################## 
# Begin installation directories definition block#
##################################################
package_name="jsboard"
jsboarddir="/usr/share/${package_name}/"
docdir="/usr/share/doc/${package_name}/"
sqldir="${jsboarddir}INSTALLER/SQL/"
configdir="/etc/${package_name}/"
configfile="${configdir}global.php"
includefile="${configdir}apache.conf"
################################################
# End nstallation directories definition block #
################################################


case "$1" in
    configure)

################################################## 
# Begin webserver config block#
##################################################
#server="apache"
#. /usr/share/wwwconfig-common/apache-include_all.sh
#[ "$status" = "uncomment" -o "$status" = "include" ] && restart="$server restart"
#
#servers="apache"
#. /usr/share/wwwconfig-common/restart.sh

#sleep 5
for i in apache apache-ssl apache-perl apache2; do
        if [ -e /etc/$i/httpd.conf ]; then
                ln -sf ${configdir}apache.conf /etc/$i/conf.d/jsboard.conf
        fi
done


################################################## 
# End webserver config block#
##################################################

db_get ${package_name}/dbuname
dbuname="$RET"
db_get ${package_name}/dbname
dbname="$RET"
db_get ${package_name}/dbadmin
dbadmin="$RET"
db_get ${package_name}/dbadmpass
dbadmpass="$RET"
db_reset ${package_name}/dbadmpass
db_get ${package_name}/dbpass
dbpass="$RET"
db_reset ${package_name}/dbpass

. /usr/share/wwwconfig-common/mysql.get

if [ -f "${configdir}global.ph" ]; then
       cp -Rp ${configdir}global.ph ${configdir}global.php
       rm -f ${jsboarddir}config/global.ph
fi

#if [ -f "${jsboarddir}config/global.ph" ]; then
#       cp -Rp ${jsboarddir}config/global.ph ${configdir}global.ph
#       rm -f ${jsboarddir}config/global.ph
#fi

#if [ -f "${jsboarddir}config/security_data.ph" ]; then
#       cp -Rp ${jsboarddir}config/security_data.ph ${configdir}security_data.ph
#       rm -f ${jsboarddir}config/security_data.ph
#fi

#if [ -f "${jsboarddir}config/spam_list.txt" ]; then
#       cp -Rp ${jsboarddir}config/spam_list.txt ${configdir}spam_list.txt
#       rm -f ${jsboarddir}config/spam_list.txt
#fi

TEMPFILE=`tempfile -s .${package_name}_install.tmp` && chown root:www-data $TEMPFILE && chmod 640 $TEMPFILE
sed "s/@DBSERVER@/:\/var\/run\/mysqld\/mysqld\.sock/g" $configfile | \
sed "s/@DBUSER@/$dbuname/g" | \
sed "s/@DBPASS@/$dbpass/g" | \
sed "s/@DBNAME@/$dbname/g" | \
sed "s/domain\.com/`hostname -f`/g" | \
sed "s/@SPAM1@:@SPAM2@:@SPAM3@/32453:24:46/g" | \
sed "s/\"login\"/\"`hostname`\"/g" | \
sed "s/@THEME@/KO-default/g" \
> $TEMPFILE && mv $TEMPFILE $configfile

chgrp www-data ${configdir}
chgrp -R www-data ${jsboarddir}data
chgrp www-data ${configdir}global.php
#chgrp www-data ${configdir}security_data.ph
chgrp www-data ${configdir}spam_list.txt

# permission configuration
#chmod 750 ${jsboarddir}config
chmod 775 ${jsboarddir}data
chmod 775 ${jsboarddir}data/test
if [ -d "${jsboarddir}data/test/files" ]; then
	chmod 775 ${jsboarddir}data/test/files
fi
chmod 664 ${configdir}spam_list.txt
chmod 660 ${configdir}global.php
#chmod 660 ${configdir}security_data.ph
chmod 664 ${jsboarddir}data/test/config.php
chmod 664 ${jsboarddir}data/test/html_head.php
chmod 664 ${jsboarddir}data/test/html_tail.php
chmod 664 ${jsboarddir}data/test/stylesheet.php

#ln -s ${configdir}spam_list.txt ${jsboarddir}config/spam_list.txt
#ln -s ${configdir}global.ph ${jsboarddir}config/global.ph
#ln -s ${configdir}security_data.ph ${jsboarddir}config/security_data.ph


#############################
# Begin DB generation block #
#############################

db_get ${package_name}/dbgeneration
if [ "$RET" = "true" ]; then
    dbgeneration="success"
#    mysqladmin -u$dbadmin $passopt create $dbname || dbgeneration="failure"
    mysqladmin -u$dbadmin --password=$dbadmpass create $dbname || dbgeneration="failure"
    if [ "$dbgeneration" = "success" ] ; then
       mysql $dbname -u$dbadmin --password=$dbadmpass < ${sqldir}board-linux.sql || dbgeneration="failure"
       mysql $dbname -u$dbadmin --password=$dbadmpass < ${sqldir}userdb-linux.sql || dbgeneration="failure"
     fi
    if [ "$dbgeneration" = "success" ] ; then
       mysql -u$dbadmin --password=$dbadmpass -e "GRANT ALL PRIVILEGES ON $dbname.* TO $dbuname@localhost IDENTIFIED BY '$dbpass' WITH GRANT OPTION;" || dbgeneration="failure"
     fi
    if [ "$dbgeneration" = "failure" ] ; then
       db_input high ${package_name}/dbgeneration_error || true
       db_go
     fi

  if [ "$dbgeneration" = "success" ] ; then
     db_set ${package_name}/dbgeneration false
     db_fset ${package_name}/dbgeneration_negation seen true
     # Inform the user everything all right
     jsboardserver=`hostname -f`
     db_subst ${package_name}/access_message jsboardserver $jsboardserver
     db_fset ${package_name}/access_message seen false
     db_input medium ${package_name}/access_message || true
     db_go
   fi
  dbpass=""
  dbadmpass=""
 fi

###########################
# End DB generation block #
###########################

   ;;

    abort-upgrade|abort-remove|abort-deconfigure)

    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#
db_stop

exit 0


