#!/bin/sh

# Package
PACKAGE="resilioagent"
DNAME="Resilio Agent"

# Others
USER="admin"
INSTALL_DIR="/var/packages/${PACKAGE}/target"
OLD_STORAGE_DIR="/var/packages/${PACKAGE}/target/app"
STORAGE_DIR="/var/packages/${PACKAGE}/var/app"
PATH="${INSTALL_DIR}/bin:${PATH}"
RSLSYNC="${INSTALL_DIR}/bin/rslagent"
#CFG_FILE="${INSTALL_DIR}/var/sync.conf"
CFG_FILE="${STORAGE_DIR}/sync.conf"
#CFG_FOLDERS="${INSTALL_DIR}/app/folders.conf"
CFG_FOLDERS="${INSTALL_DIR}/bin/folders.conf"

#PID_FILE="${INSTALL_DIR}/var/sync.pid"
PID_FILE="/var/packages/resilioagent/var/app/sync.pid"

start_daemon ()
{
    #chown -R ${USER}:administrators $INSTALL_DIR/var
    #su - ${USER} -s "/bin/sh" -c "umask 000; PATH=${PATH} ${RSLSYNC} --config ${CFG_FOLDERS} --config ${CFG_FILE} --storage $INSTALL_DIR/var"

    #if [ ! -d  ${STORAGE_DIR} ]; then
    #   if [ -d ${OLD_STORAGE_DIR} ]; then
    #       mv ${OLD_STORAGE_DIR} ${STORAGE_DIR}
    #   fi
    #fi

    if [ ! -f  ${CFG_FILE} ]; then
	mkdir -p ${STORAGE_DIR}
        for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20;
        do
	    if [ -f "/volume${i}/${DNAME}/sync.conf" ]; then
	        mv "/volume${i}/${DNAME}/sync.conf" "${CFG_FILE}"
                break
            fi
        done
    fi

    ${INSTALL_DIR}/bin/rslagent --config ${CFG_FOLDERS} --config ${CFG_FILE} --storage ${STORAGE_DIR}

}

stop_daemon ()
{
    kill `cat ${PID_FILE}`
    wait_for_status 1 20 || kill -9 `cat ${PID_FILE}`
    rm -f ${PID_FILE}
}

daemon_status ()
{
    if [ -f ${PID_FILE} ] && kill -0 `cat ${PID_FILE}` > /dev/null 2>&1; then
        return
    fi
    rm -f ${PID_FILE}
    return 1
}

wait_for_status ()
{
    counter=$2
    while [ ${counter} -gt 0 ]; do
        daemon_status
        [ $? -eq $1 ] && return
        let counter=counter-1
        sleep 1
    done
    return 1
}


case $1 in
    start)
        if daemon_status; then
            echo ${DNAME} is already running
        else
            echo Starting ${DNAME} ...
            start_daemon
        fi
        ;;
    stop)
        if daemon_status; then
            echo Stopping ${DNAME} ...
            stop_daemon
        else
            echo ${DNAME} is not running
        fi
        ;;
    status)
        if daemon_status; then
            echo ${DNAME} is running
            exit 0
        else
            echo ${DNAME} is not running
            exit 1
        fi
        ;;
    log)
        exit 1
        ;;
    *)
        exit 1
        ;;
esac
