#!/bin/bash

set -e

. /usr/lib/eole/ihm.sh
. /usr/lib/eole/samba4.sh

SAMBA4_VARS=/etc/eole/samba4-vars.conf

if [ -f "${SAMBA4_VARS}" ]
then
    . "${SAMBA4_VARS}"
else
    # Template is disabled => samba is disabled
    exit 0
fi

case "$1" in
    instance)
        # If Samba installed version is not the one pointed by source-list or no network available, exit instance process.
        if [[ ! -e /etc/apt/sources.list.d/seth-samba.list ]]
        then
            EchoRouge "Le dépôt de paquet pour la dernière version de Samba n’est pas renseigné"
            EchoRouge "Lancer la commande Maj-Auto pour renseigner le dépôt et mettre à jour la version de Samba."
            exit 1
        fi
        samba_pkg="$(apt-cache policy samba | awk '/Install/ {print $NF}')"
        samba_source="$(apt-cache madison samba | awk -v sp=" $samba_pkg " -F"|" '$2 == sp {print $3}' | cut -d' ' -f2,3)"
        source_list=$(sed 's/\[ arch=amd64 \] //' /etc/apt/sources.list.d/seth-samba.list | awk '/deb / {print $2, $3"/"$4}')
        samba_installed_version="$(apt-cache policy samba | awk -F" " '/Install/ {print $2}')"
        samba_samba_list_version="$(apt-cache madison samba | awk -F"|" '/\/samba / {print $2}' |cut -d " " -f2)"
        if [[ "${samba_source}" != "${source_list}" ]] && dpkg --compare-versions "$samba_installed_version" lt "$samba_samba_list_version"
        then
            EchoRouge "La version de Samba installée n’est pas celle requise."
            EchoRouge "Lancer la commande Maj-Auto pour mettre à jour la version de Samba."
            exit 1
        fi
        samba_instance
        ;;

    reconfigure)
        samba_reconfigure
        ;;

    *)
        EchoRouge "Paramètre inconnu: ${1}"
        exit 1
        ;;
esac
