#!/bin/sh

# Script Environment Variables
# -------------------------------------------------------------------------------------
# SYNOPKG_PKGNAME               =   Package identify which is defined in INFO
# SYNOPKG_PKGVER                =   Package version which is defined in INFO
# SYNOPKG_PKGDEST               =   Package destination path
#                                   /volume[x]/@appstore/[Package Name]
# SYNOPKG_TEMP_UPGRADE_FOLDER   =   Temporary upgrade folder
#                                   /volume1/@tmp/synopkg.tmp/[Package Name]
# -------------------------------------------------------------------------------------


# Important Paths, soft links and variables
# -------------------------------------------------------------------------------------
# DSM WebGUI folder
# /usr/syno/synoman/webman/3rdparty/[Package Name] -> /var/packages/[Package Name]/target
#WEBGUI_FOLDER="/usr/syno/synoman/webman/3rdparty/${SYNOPKG_PKGNAME}"
if [ -d "${SYNOPKG_PKGDEST}/etc" ]; then
    WEBGUI_FOLDER="${SYNOPKG_PKGDEST}"
elif [ -d "${SYNOPKG_PKGDEST}/ui/etc" ]; then
    WEBGUI_FOLDER="${SYNOPKG_PKGDEST}/ui"
fi

# Soft link
# /var/packages/[Package Name]/target -> /volume1/@appstore/[Package Name]
PACKAGE_FOLDER="/var/packages/${SYNOPKG_PKGNAME}/target/ui"

# Timestamp - Formatting the Timestamp to terminate log entries
TIMESTAMP=$(date +%Y-%m-%d%t%H:%M:%S)
# -------------------------------------------------------------------------------------


# Action...
# -------------------------------------------------------------------------------------
echo '${TIMESTAMP} - Start package update --> ${SYNOPKG_PKGNAME} ${SYNOPKG_PKGVER}' >>/tmp/${SYNOPKG_PKGNAME}.history
echo '------------------------------------------------------------------------------------------------------------------------------------------' >>/tmp/${SYNOPKG_PKGNAME}.history

echo "WEBGUI_FOLDER: ${WEBGUI_FOLDER}/etc" >>/tmp/${SYNOPKG_PKGNAME}.history

# backup config:
if [ -d "${WEBGUI_FOLDER}/etc" ]; then
    [ ! -d "${SYNOPKG_TEMP_UPGRADE_FOLDER}/etc" ] && mkdir -p -m 755 ${SYNOPKG_TEMP_UPGRADE_FOLDER}/etc
    cp -rf ${WEBGUI_FOLDER}/etc/* ${SYNOPKG_TEMP_UPGRADE_FOLDER}/etc
    echo ''${TIMESTAMP}' - Backup the SQLite database from '${WEBGUI_FOLDER}'/etc to '${SYNOPKG_TEMP_UPGRADE_FOLDER}'/etc' >> /tmp/${SYNOPKG_PKGNAME}.history

    echo "stored source files:" >> /tmp/${SYNOPKG_PKGNAME}.history
    ls -la ${WEBGUI_FOLDER}/etc >> /tmp/${SYNOPKG_PKGNAME}.history

    echo "stored target files:" >> /tmp/${SYNOPKG_PKGNAME}.history
    ls -la ${SYNOPKG_TEMP_UPGRADE_FOLDER}/etc >> /tmp/${SYNOPKG_PKGNAME}.history
else
    echo '${TIMESTAMP} - Backup of SQLite database failed' >> /tmp/${SYNOPKG_PKGNAME}.history
    exit 1
fi

# backup python environment:
# disabled in v1.4.1 due to an update error
#if [ -d "${WEBGUI_FOLDER}/python3_env" ]; then
#    mv ${WEBGUI_FOLDER}/python3_env ${SYNOPKG_TEMP_UPGRADE_FOLDER}/
#    echo ''${TIMESTAMP}' - Backup python3_env from '${WEBGUI_FOLDER}'/python3_env to '${SYNOPKG_TEMP_UPGRADE_FOLDER}'/python3_env' >> /tmp/${SYNOPKG_PKGNAME}.history
#fi

# -------------------------------------------------------------------------------------
# select language:
    if [ -f $(/usr/bin/dirname $0)/lang/${SYNOPKG_DSM_LANGUAGE} ] ; then
         . $(/usr/bin/dirname $0)/lang/${SYNOPKG_DSM_LANGUAGE}
    else
         . $(/usr/bin/dirname $0)/lang/enu
    fi

# timer in older installations is no longer available. Please use the DSM task scheduler!:
    if [[ $(printf "1.1.999\n$SYNOPKG_OLD_PKGVER" | sort -V | tail -n1) = "1.1.999" ]] ; then
        echo "${PKG_DELETE_TIMER}" > $SYNOPKG_TEMP_LOGFILE
    fi

# check docker:
if [ ! -e "/var/run/docker.sock" ]; then
    echo "${PKG_NOINSTALL_MISSING_DOCKER_ERROR}" > $SYNOPKG_TEMP_LOGFILE
    exit 1
fi

exit 0