#!/bin/sh

[ -e /usr/share/debconf/confmodule ] && . /usr/share/debconf/confmodule

# On ne fait rien si c'est dans un chroot
root_inode=$(stat -c %i /)
if [ "$root_inode" = "2" ] ; then
    db_get kwartz/ldapuri || true
    ldapuri="$RET"
    db_get kwartz/ldapbase || true
    ldapbase="$RET"
    db_get kwartz/user || true
    user="$RET"
    db_get kwartz/userpassword || true
    userpassword="$RET"
    # ensure a non-empty password is someone has entered nothing
    [ -n "$userpassword" ] || userpassword="nonEmpty"
    db_get kwartz/servername || true
    servername="$RET"
    db_get kwartz/cloud_ip || true
    cloud_ip="$RET"
    db_get kwartz/alt_ip || true
    alt_ip="$RET"
    db_get kwartz/tls_port || true
    tls_port="$RET"
    db_get kwartz/davpath || true
    davpath="$RET"

    # ecriture de /etc/nslcd.conf
    cat /usr/share/doc/kwartz-client/nslcd.conf.template | \
	sed -e "s%@@ldapuri@@%$ldapuri%" \
	    -e "s/@@ldapbase@@/$ldapbase/" \
	    -e "s/@@user@@/$user/" \
	    -e "s/@@userpassword@@/$userpassword/" > /etc/nslcd.conf

    # ecriture de /etc/nsswitch.conf
    cp /usr/share/doc/kwartz-client/nsswitch.conf.template /etc/nsswitch.conf

    #ajout d'une ligne dans /etc/pam.d/common-session
    l="session required pam_mkhomedir.so skel=/etc/skel umask=0022"

    if ! grep -q "pam_mkhomedir.so" /etc/pam.d/common-session; then
	echo $l >> /etc/pam.d/common-session
    fi

    # ajout d'un bloc dans /etc/security/pam_mount.conf.xml
    # pour monter automatiquement les partages du serveur Kwartz
    # destinés à un utilisateur

    # le nom du Bureau peut être Desktop, comme avec LXDE
    skeltop=$(ls /etc/skel)
    desktopname=Bureau
    if echo $skeltop | grep -q Desktop ; then
	desktopname=Desktop
    fi
    
    if ! grep -q "Volume definitions for Kwartz" /etc/security/pam_mount.conf.xml; then
	cat /etc/security/pam_mount.conf.xml | \
	    sed -e '/.*<!-- Volume definitions -->/ r /usr/share/doc/kwartz-client/pam_mount.conf.xml.template' | \
	    sed -e "s/SERVEUR/$servername/" -e "s/Bureau/$desktopname/" > \
		/etc/security/pam_mount.conf.xml.tmp && \
	    mv /etc/security/pam_mount.conf.xml.tmp /etc/security/pam_mount.conf.xml
    fi

    # ajout d'une ligne dans /etc/inetd.conf pour le "kwartz-auth"
    l="ident stream tcp wait identd /usr/sbin/identd identd"
    if ! grep -q "ident *stream *tcp *wait *identd" /etc/inetd.conf; then
	update-inetd --add "$l"
    fi

    # ajout d'un lien pour que les utilisateurs aient un shell
    ln -sf bash /bin/kwartz-sh

    service nslcd restart
else
    echo "No configuration change if we are in a chroot!"
fi

# écriture de la configuration pour kwartz-cloud
sed -i \
    -e 's/SERVER_IP=.*/SERVER_IP='${cloud_ip}'/' \
    -e 's/ALT_IP=.*/ALT_IP='${alt_ip}'/' \
    -e 's/TLS_PORT=.*/TLS_PORT='${tls_port}'/' \
    -e 's%DAVPATH=.*%DAVPATH='${davpath}'%' \
    /etc/kwartz-cloud.conf
