#!/usr/bin/env bash

[ -n "${CONNECTION_UUID}" ] || exit 0

[[ -f /usr/lib/ublinux/os-config ]] && . /usr/lib/ublinux/os-config || exit 0

#eval $(grep -i "^AUTOMOUNTSAHARE=" ${SYSCONF}/config)
. ${SYSCONF}/config
[[ -n ${AUTOMOUNTSAHARE1} ]] || exit 0

INTERFACE=$1
ACTION=$2

automount(){
    #SMBOPTSDEF="vers=3,nolock,users,noauto"
    SMBOPTSDEF="noperm"
    sleep 5
    AUTOMOUNTSAHARE="AUTOMOUNTSAHARE${I:=1}"
    while [[ ${!AUTOMOUNTSAHARE} ]]; do
        if [[ "$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f1)" == "cifs" ]]; then
            PATHMOUNTFROM="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f2)"
            PATHMOUNTTO="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f3)"
            USERNAME="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f4)"
            PASSWORD="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f5)"
            DOMAIN="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f6)"
            [[ -d ${PATHMOUNTTO} ]] && umount -qRlf ${PATHMOUNTTO} || mkdir -p ${PATHMOUNTTO}
            SMBOPTS="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f7)"
            [[ -z ${SMBOPTS} ]] && SMBOPTS=${SMBOPTSDEF}
            mkdir -m700 -p /tmp/ublinux/.smbcredentials_sharename
            echo "user=$USERNAME" > /tmp/ublinux/.smbcredentials_sharename/credentials-${I}.ini
            echo "password=$PASSWORD" >> /tmp/ublinux/.smbcredentials_sharename/credentials-${I}.ini
            echo "domain=$DOMAIN" >> /tmp/ublinux/.smbcredentials_sharename/credentials-${I}.ini
            chmod -fR 600 /tmp/ublinux/.smbcredentials_sharename/*
#           mount.cifs "${PATHMOUNTFROM}" "${PATHMOUNTTO}" -ouser="${USERNAME}",password="${PASSWORD}","${SMBOPTS}"
            mount.cifs ${PATHMOUNTFROM} ${PATHMOUNTTO} -ocredentials="/tmp/ublinux/.smbcredentials_sharename/credentials-${I}.ini",${SMBOPTS}
            rm -f /tmp/ublinux/.smbcredentials_sharename/credentials-${I}.ini
	elif  [[ "$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f1)" == "nfs" ]]; then
	    echo
	elif  [[ "$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f1)" == "ftp" ]]; then
	    echo
	elif  [[ "$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f1)" == "sshfs" ]]; then
            PATHMOUNTFROM="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f2)"
	    TARGETIP=""
            PATHMOUNTTO="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f3)"
            USERNAME="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f4)"
            SSHPASS="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f5)"
	    [[ -d ${PATHMOUNTTO} ]] && umount -qRlf ${PATHMOUNTTO} || mkdir -p ${PATHMOUNTTO}
	    sshpass -e sshfs -f -o reconnect,allow_other,auto_unmount ${USERNAME}@${TARGETIP}:${PATHMOUNTFROM} ${PATHMOUNTTO}
	fi
        AUTOMOUNTSAHARE="AUTOMOUNTSAHARE$((++I))"
    done
}

autoumount(){
    AUTOMOUNTSAHARE="AUTOMOUNTSAHARE${I:=1}"
    while [[ ${!AUTOMOUNTSAHARE} ]]; do
	if [[ "$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f1)" == "cifs" ]]; then
	    PATHMOUNTTO="$(echo ${!AUTOMOUNTSAHARE} | cut -d: -f3)"
	    umount -l -R -f ${PATHMOUNTTO} >/dev/null
	fi
	AUTOMOUNTSAHARE="AUTOMOUNTSAHARE$((++I))"
    done
}

case "$ACTION" in
    "up")
	automount &
    ;;
    "pre-down" | "vpn-pre-down")
        autoumount &
    ;;
esac

exit 0