#!/bin/sh

# package
package="resilioagent"
dname="Resilio Agent"
volume="/volume1"
home="${volume}/${dname}"
downloads="${home}/Downloads"

# others
group="users"
user="admin"

admins_list="$(cat /etc/group | grep administrators | sed -n -e 's/^.*://p' | sed -n -e 's/,/ /gp')"
sss="/var/packages/${package}/scripts/start-stop-status"

install_dir="/usr/local/${package}"
storage_dir="${install_dir}/var"

cfg_file="${storage_dir}/sync.conf"

old_folders_cfg="${storage_dir}/folders.conf"
folders_cfg="${install_dir}/app/folders.conf"

path="${install_dir}/bin:${path}"
tmp_dir="${SYNOPKG_PKGDEST}/../../@tmp"

# ---------------- helper functions -------------------------

stop_sync ()
{
    ${sss} stop > /dev/null
}

create_dir()
{
    directory=$1
    if [ ! -d "$dir" ]; then
        mkdir -p "$dir"
    fi

    chown -r $user:$group "$dir"
}

# -----------------------------------------------------------

preupgrade ()
{
    stop_sync

    # folders.conf are now stored in 'app' dir because it
    # should be overwritten by a package's one
    # so to not confuse users we delete old location
    rm -rf ${old_folders_cfg}

    # save current 'var' folder to 'tmp' folder
    # (will be restored at postupgrade)
    rm -fr ${tmp_dir}/${package}
    mkdir -p ${tmp_dir}/${package}
    mv ${storage_dir} ${tmp_dir}/${package}/

    exit 0
}

preuninst ()
{
    stop_sync
    exit 0
}

postuninst ()
{
    # remove link from /usr/local/resilioagent -> /volume1/@appstore/resilioagent
    rm -f ${install_dir}

    exit 0
}

preinst ()
{
    exit 0
}

postinst ()
{
    # restore link from /usr/local/resilioagent -> /volume1/@appstore/resilioagent
    ln -s ${SYNOPKG_PKGDEST} ${install_dir}

    create_dir "${home}"
    create_dir "${downloads}"

    sed -i -e "s~@home_folder@~${home}~" ${folders_cfg}
    sed -i -e "s~@downloads_folder@~${downloads}~" ${folders_cfg}

    mkdir -p ${storage_dir}

    if [ ! -f  ${cfg_file} ]; then
        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" "${storage_dir}"
                break
            fi
        done
    fi

    exit 0
}

postupgrade ()
{
    # delete 'var' folder from the package
    rm -fr ${storage_dir}

    # restore current 'var' folder from the previous installation (we saved it in 'tmp' folder at preupgrade)
    mv ${tmp_dir}/${package}/var ${install_dir}/

    exit 0
}
