#! /bin/sh

set -e
# Source debconf library.
. /usr/share/debconf/confmodule
db_title AlternC

db_input critical alternc/welcomeconfirm || true

db_go
# Check the answer.
db_get alternc/welcomeconfirm || true

if [ "$RET" = "false" ]; then
        # reset the welcomeconfirm flag if user refuses so it gets asked again next time
        db_reset alternc/welcomeconfirm || true
        db_fset alternc/welcomeconfirm "seen" "false" || true
	exit 1
fi

db_input critical alternc/warningaclquota || true



# default values for local.sh
MYSQL_HOST=127.0.0.1
MYSQL_DATABASE=alternc
MYSQL_USER=sysusr
MYSQL_PASS="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..10)' `"
MYSQL_MAIL_USER=alternc_user
MYSQL_MAIL_PASS="`perl -e 'print map{("a".."z","A".."Z",0..9)[int(rand(62))]}(1..10)' `"
MYSQL_CLIENT=localhost
FQDN="`cat /etc/mailname 2>/dev/null || hostname -f`"
INTERNAL_IP="`env LANG=C /sbin/ifconfig|grep inet | grep -v 127.0.0.1| head -1 | cut -d: -f2 | sed -e 's/\([0-9\.]*\).*$/\1/' 2>/dev/null || hostname -f`"
PUBLIC_IP="$INTERNAL_IP"
DEFAULT_MX="`cat /etc/mailname 2>/dev/null || hostname -f`"
ALTERNC_LOC=/var/alternc
NS1_HOSTNAME="$FQDN"
NS2_HOSTNAME="$FQDN"
HOSTING="AlternC"
SQLBACKUP_TYPE="rotate"
SQLBACKUP_OVERWRITE="no"

if [ -r /etc/alternc/local.sh ]; then
    # source the current config
    . /etc/alternc/local.sh
fi
if [ -r /etc/alternc/my.cnf ]; then
    # make mysql configuration available as shell variables
    # to convert from .cnf to shell syntax, we:
    # * match only lines with "equal" in them (/=/)
    # * remove whitespace around the = and add a left quote operator ' (;s)
    # * add a right quote operator at the end of line (;s)
    # * convert mysql variables into our MYSQL_ naming convention (;s)
    # * print the result (;p)
    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`
fi

if [ -r /etc/alternc/my_mail.cnf ]; then
    # make mysql configuration available as shell variables
    # to convert from .cnf to shell syntax, we:
    # * match only lines with "equal" in them (/=/)
    # * remove whitespace around the = and add a left quote operator ' (;s)
    # * add a right quote operator at the end of line (;s)
    # * convert mysql variables into our MYSQL_ naming convention (;s)
    # * print the result (;p)
    eval `sed -n -e "/=/{s/ *= *\"\?/='/;s/\"\?\$/'/;s/host/MYSQL_HOST/;s/user/MYSQL_MAIL_USER/;s/password/MYSQL_MAIL_PASS/;s/database/MYSQL_DATABASE/;p}" /etc/alternc/my_mail.cnf`
fi

# mettre les valeurs de local.sh comme "default" pour debconf
db_get alternc/alternc_location
if [ -z "$RET" ]
    then
db_set alternc/alternc_location "$ALTERNC_LOC"
fi

db_get alternc/alternc_location
#checking acl and quota activation, does't work with NFS yet. and with LXC too...
location=$RET
mount_point=`df -P $location | tail -1 | /usr/bin/awk '{print $NF}'`
quota_activation=`(quotaon -pa 2>/dev/null || true) |grep '^group.*on$' | /usr/bin/awk '$4 ~ /^\'$mount_point'$/ {print $4}'`
acl_activation=`/bin/mount | awk '$NF ~ /acl/ && $NF !~ /noacl/ && $3 ~ /^\'"$mount_point"'$/ {print $3}'`

if [ "$mount_point" != "$acl_activation" ]                                                           
then                                           
	db_input critical alternc/acluninstalled || true
	db_go
#    db_reset alternc/acluninstalled || true
#    db_fset alternc/acluninstalled "seen" "false" || true
#    exit 1
fi           

if [ "$mount_point" != "$quota_activation" ]
then
	db_input critical alternc/quotauninstalled || true
	db_go
    db_reset alternc/quotauninstalled || true
    db_fset alternc/quotauninstalled "seen" "false" || true
fi

db_get alternc/hostingname
if [ -z "$RET" ]
    then
    db_set alternc/hostingname "$HOSTING"
fi

db_get alternc/desktopname
if [ -z "$RET" ]
    then
db_set alternc/desktopname "$FQDN"
fi

db_get alternc/public_ip
if [ -z "$RET" ]
    then
db_set alternc/public_ip "$PUBLIC_IP"
fi

db_get alternc/internal_ip
if [ -z "$RET" ]
    then
db_set alternc/internal_ip "$INTERNAL_IP"
fi

db_get alternc/monitor_ip
if [ -z "$RET" ]
    then
db_set alternc/monitor_ip "$MONITOR_IP"
fi

db_get alternc/ns1
if [ -z "$RET" ]
    then
db_set alternc/ns1 "$NS1_HOSTNAME"
fi

db_get alternc/ns2
if [ -z "$RET" ]
    then
db_set alternc/ns2 "$NS2_HOSTNAME"
fi

db_get alternc/default_mx
if [ -z "$RET" ]
    then
db_set alternc/default_mx "$DEFAULT_MX"
fi

db_get alternc/default_mx2
if [ -z "$RET" ]
    then
db_set alternc/default_mx2 "$DEFAULT_SECONDARY_MX"
fi

db_get alternc/mysql/host
if [ -z "$RET" ]
    then
db_set alternc/mysql/host "$MYSQL_HOST"
fi

db_get alternc/mysql/db
if [ -z "$RET" ]
    then
db_set alternc/mysql/db "$MYSQL_DATABASE"
fi

db_get alternc/mysql/user
if [ -z "$RET" ]
    then
db_set alternc/mysql/user "$MYSQL_USER"
fi

db_get alternc/mysql/password
if [ -z "$RET" ]
    then
db_set alternc/mysql/password "$MYSQL_PASS"
fi

db_get alternc/mysql/client
if [ -z "$RET" ]
    then
db_set alternc/mysql/client "$MYSQL_CLIENT"
fi

db_get alternc/sql/backup_type
if [ -z "$RET" ]
    then
db_set alternc/sql/backup_type "$SQLBACKUP_TYPE"
fi

db_get alternc/sql/backup_overwrite
if [ -z "$RET" ]
    then
db_set alternc/sql/backup_overwrite "$SQLBACKUP_OVERWRITE"
fi

db_get alternc/mysql/alternc_mail_user
if [ -z "$RET" ]
    then
db_set alternc/mysql/alternc_mail_user "$MYSQL_MAIL_USER"
fi

db_get alternc/mysql/alternc_mail_password
if [ -z "$RET" ]
    then
db_set alternc/mysql/alternc_mail_password "$MYSQL_MAIL_PASS"
fi
db_input medium alternc/desktopname || true
db_input medium alternc/hostingname || true
db_input medium alternc/internal_ip || true
db_input medium alternc/public_ip || true
db_input medium alternc/default_mx || true
db_input medium alternc/ns1 || true
db_input medium alternc/ns2 || true
db_input low alternc/alternc_location || true
db_input low alternc/default_mx2 || true
db_input low alternc/mysql/host || true
db_input low alternc/mysql/db || true
db_input low alternc/mysql/user || true
db_input low alternc/mysql/password || true
db_input low alternc/mysql/alternc_mail_password || true
db_input low alternc/mysql/alternc_mail_user || true
db_input low alternc/mysql/client || true
db_input low alternc/sql/backup_type || true
db_input low alternc/sql/overwrite || true
db_input low alternc/monitor_ip || true
db_input low alternc/slaves || true
db_go

# vim: et sw=4
