### Generic variables and functions
### -------------------------------

if [ -z "${SYNOPKG_PKGNAME}" ] || [ -z "${SYNOPKG_DSM_VERSION_MAJOR}" ]; then
  echo "Error: Environment variables are not set." 1>&2;
  echo "Please run me using synopkg instead. Example: \"synopkg start [packagename]\"" 1>&2;
  exit 1
fi

USER="transmission"
EFF_USER="sc-transmission"

# DSM name of shared folder from UI if provided
if [ -n "${wizard_shared_folder_name}" ]; then
   SHARE_PATH=$(realpath "/var/packages/${SYNOPKG_PKGNAME}/shares/${wizard_shared_folder_name}" 2> /dev/null)
   install_log "SHARE_PATH from share [${SHARE_PATH}], variable [wizard_shared_folder_name=${wizard_shared_folder_name}]"
   SHARE_NAME="${wizard_shared_folder_name}"
fi

# Service port
SERVICE_PORT="9091"

# start-stop-status script redirect stdout/stderr to LOG_FILE
LOG_FILE="${SYNOPKG_PKGVAR}/${SYNOPKG_PKGNAME}.log"

# Service command has to deliver its pid into PID_FILE
PID_FILE="${SYNOPKG_PKGVAR}/${SYNOPKG_PKGNAME}.pid"


### Package specific variables and functions
### ----------------------------------------


CFG_FILE="${SYNOPKG_PKGVAR}/settings.json"
TRANSMISSION="${SYNOPKG_PKGDEST}/bin/transmission-daemon"
export TMP_DIR="${SYNOPKG_PKGTMP}"

SERVICE_COMMAND="${TRANSMISSION} --config-dir ${SYNOPKG_PKGVAR} --pid-file ${PID_FILE} --logfile ${LOG_FILE}"

service_postinst ()
{
    if [ "${SYNOPKG_PKG_STATUS}" = "INSTALL" ]; then
        # Define managed functions and folders
        TXN_FUNCTS=("complete" "incomplete" "watch")
        TXN_FOLDRS=("complete" "incomplete" "watch-transmission")
        TXN_PATHS=()

        # Create the managed folders
        for item in "${TXN_FOLDRS[@]}"; do
            folder="${SHARE_PATH}/$item"
            mkdir -p "$folder"
            TXN_PATHS+=("$folder")
        done

        # Edit the configuration according to the wizard
        sed -e "s|@username@|${wizard_username:=admin}|g" \
            -e "s|@password@|${wizard_password:=admin}|g" \
            -i "${CFG_FILE}"

        i=0
        while [ $i -lt ${#TXN_FUNCTS[@]} ]; do
            if [ "${TXN_FUNCTS[$i]}" = "complete" ]; then
                sed -e "s|@download_dir@|${TXN_PATHS[$i]}|g" -i "${CFG_FILE}"
            else
                sed -e "s|@${TXN_FUNCTS[$i]}_dir_enabled@|true|g" \
                    -e "s|@${TXN_FUNCTS[$i]}_dir@|${TXN_PATHS[$i]}|g" \
                    -i "${CFG_FILE}"
            fi
            i=$((i+1))
        done
    fi
}
