#!/bin/bash

NAME=$1
. /unas/etc/netdrive/storage/env/$NAME

WORK_DIR=`dirname "$0"`

RET=0

clear_mountpoint() {
    echo Clean mountpoint "$1"
    chattr -i "$1"
    rmdir "$1" "`dirname $1`" > /dev/null 2>&1
    return $?
}

success_job(){
    if [ $RET -eq 0 ];then
        export NETDRIVE_MOUNTPOINT=${MOUNTPOINT}
        export NETDRIVE_NAME=${NAME}
        run-parts ${WORK_DIR}/mount_clean.d || :
    fi
}

case "$NETDRIVE_TYPE" in
    rclone)
        umount "${RCLONE_MOUNTPOINT}" > /dev/null 2>&1
        RET=$?
        if [ $RET -eq 0 ];then
            clear_mountpoint "${RCLONE_MOUNTPOINT}"
        else
            umount -fl "${RCLONE_MOUNTPOINT}" > /dev/null 2>&1
            RET=0
            clear_mountpoint "${RCLONE_MOUNTPOINT}" || $WORK_DIR/mount_clean_daemon "${RCLONE_MOUNTPOINT}" &
        fi
        MOUNTPOINT=${RCLONE_MOUNTPOINT}
        ;;
    mount|customize|customize_daemon)
        #fuser -km "${MOUNTPOINT}"
        umount "${MOUNTPOINT}" > /dev/null 2>&1
        RET=$?
        if [ $RET -eq 0 ];then
            clear_mountpoint "${MOUNTPOINT}"
        else
            umount -fl "${MOUNTPOINT}" > /dev/null 2>&1
            RET=0
            $WORK_DIR/mount_clean_daemon "${MOUNTPOINT}" &
        fi
        ;;
    *)
        echo Unknown type $NETDRIVE_TYPE
        ;;
esac

success_job

exit $RET
