#!/bin/bash

# ----------------------------------------------------------------------
# AlternC - Web Hosting System
# Copyright (C) 2000-2012 by the AlternC Development Team.
# https://alternc.org/
# ----------------------------------------------------------------------
# LICENSE
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License (GPL)
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# To read the license please visit http://www.gnu.org/copyleft/gpl.html
# ----------------------------------------------------------------------
# Purpose of file: Install roundcube conf files.
# ----------------------------------------------------------------------

if [ "$1" = "templates" ]
then
    echo "Installing Roundcube Templates ..."
#    cp -f /etc/alternc/templates/roundcube/avelsieve-config.php /etc/alternc/templates/roundcube/apache.conf /etc/roundcube/
#    cp -f /etc/alternc/templates/javascript-common/javascript-common.conf /etc/javascript-common/

    LOGIN="0000_roundcube"
    PASSWORD="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..10)'`"
    DESKEY="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..24)'`"

    # Add new variables to the sed script ...
    SED_SCRIPT="/tmp/alternc-roundcube.sedscript"
    # cf alternc.install for more explanations on this horror : 
    eval `sed -n -e "/=/{s/ *= *\"\?/='/;s/\"\?\$/'/;s/host/MYSQL_HOST/;s/user/MYSQL_USER/;s/password/MYSQL_PASS/;s/database/MYSQL_DATABASE/;p}" /etc/alternc/my.cnf`
    . /etc/alternc/local.sh
    # Configuration template location
    TEMPLATE_DIR="/etc/alternc/templates"
    CONFIG_FILES="etc/roundcube/main.inc.php etc/roundcube/plugins/password/config.inc.php etc/roundcube/plugins/managesieve/config.inc.php"

    cat > $SED_SCRIPT <<EOF
s\\%%ALTERNC_LOC%%\\$ALTERNC_LOC\\;
s\\%%dbhost%%\\$MYSQL_HOST\\;
s\\%%dbname%%\\$MYSQL_DATABASE\\;
s\\%%roundcube-login%%\\$LOGIN\\;
s\\%%roundcube-password%%\\$PASSWORD\\;
s\\%%deskey%%\\$DESKEY\\;
EOF
    for file in $CONFIG_FILES; do
	TEMPLATE="$TEMPLATE_DIR/${file##etc/}"
	echo -n " $file"
	if [ -f "$TEMPLATE" ]; then
            sed -f "$SED_SCRIPT" < $TEMPLATE > /$file
	fi
    done

    rm -f $SED_SCRIPT

    echo "    Done"

    . /usr/lib/alternc/functions.sh

    echo "giving write access to roundcube to the email password ..."
    # now database host user and password are mysql root account values ;) 
    mysql_query "GRANT UPDATE (password) ON ${database}.address TO '${LOGIN}'@'${MYSQL_CLIENT}' IDENTIFIED BY '${PASSWORD}';"
    mysql_query "GRANT SELECT ON ${database}.address TO '${LOGIN}'@'${MYSQL_CLIENT}';"
    mysql_query "GRANT SELECT ON ${database}.domaines TO '${LOGIN}'@'${MYSQL_CLIENT}';"
    echo "    Done"
   
    echo "Setting roundcube domaintype"
    mysql_query "INSERT IGNORE INTO domaines_type (name ,description ,target ,entry ,compatibility ,enable ,only_dns ,need_dns ,advanced )VALUES ('roundcube','Roundcube Webmail access', 'NONE', '%SUB% IN A @@PUBLIC_IP@@', 'txt', 'ALL', '0', '0', '0');"
    echo "    Done"

    echo "Migrating old webmail domaine type to roundcube one:"
    # migration of the "webmail" hosts to "roundcube" hosts:
    mysql_query "INSERT IGNORE INTO sub_domaines (compte, domaine, sub, valeur, type, web_action, web_result, enable) SELECT compte, domaine, sub, valeur,'roundcube', 'UPDATE',0, enable FROM sub_domaines WHERE type='WEBMAIL';"
    mysql_query "UPDATE sub_domaines SET web_action='DELETE' WHERE type='WEBMAIL';"
    echo "    Done"

    echo "Deconfiguring javascript-common alias"
    rm -f /etc/apache2/conf.d/javascript-common.conf
    # just in case 
    sed -i -e "s/^Alias \/javascript/# Do not uncomment, commented by AlternC to prevent a global alias\n#Alias \/javascript/" /etc/javascript-common/javascript-common.conf
    echo "    Done"
    
fi