#!/bin/bash

INST_DIR="/opt/apps/cn.huorong.esm/files"
SHARE_DIR=$INST_DIR/share

#=== fix special system style definw=======
function clear_env {
    for file in "${special_desktop_env[@]}"; do
        if [ -f "$file" ]; then
            rm -f "$file"
        fi
    done
}

function handle_autostart_file {
    if [ -x "$(command -v who 2> /dev/null)" ] && [ -x "$(command -v awk 2> /dev/null)" ]; then
        user=$(who | awk '!seen[$1]++ {print $1}')
        for user_name in $user; do
            user_file="/home/${user_name}/.config/autostart/${TRAY_DESKTOP}"
            if [ -f "${user_file}" ]; then
                rm "${user_file}"
                cp "${SRC_DIR}/${TRAY_DESKTOP}" "${user_file}"
            fi
        done
    fi
}

function is_sys {
    if [ -f "$SYS_FILE" ]; then
        while read -r line; do
            case $line in
                ID=*) ID="${line#ID=}" ;;
                VERSION_ID=*) VER="${line#VERSION_ID=}" ;;
            esac
        done < "$SYS_FILE"
    fi
}

function handle_specical_sys {
    is_sys
    case $ID in
        "deepin")
            if [ "$VER" = "\"23\"" ]; then
                handle_autostart_file
            fi
            clear_env
        ;;
        "ubuntu")
            if [ -f "${SRC_DIR}/cn.huorong.esm_main.desktop" ]; then
                rm "${SRC_DIR}/${MAIN_DESKTOP}"
                mv "${SRC_DIR}/cn.huorong.esm_main.desktop" "${SRC_DIR}/cn.huorong.esm.desktop"
            fi
        ;;
        *)
            clear_env
        ;;
    esac
}

if [ "$1" == "--upgrade-virdb" ]; then
    chmod 755 $SHARE_DIR/xsse
    chmod 755 $SHARE_DIR/virdb
    chmod 755 $SHARE_DIR/inst
    chmod -R 644 $SHARE_DIR/xsse/*
    chmod -R 644 $SHARE_DIR/virdb/*
elif [ "$1" == "--Handle-special-systems" ] ; then
    SRC_DIR="/opt/apps/cn.huorong.esm/entries/applications"
    DESKTOP_PATH="/usr/share/applications"
    TRAY_DESKTOP="cn.huorong.esm_tray.desktop"
    MAIN_DESKTOP="cn.huorong.esm.desktop"
    SYS_FILE="/etc/os-release"
    ICON_PATH="${SRC_DIR}/icons/hicolor/scalable/apps"
    ID=""
    VER=""

    special_desktop_env=(
        "${DESKTOP_PATH}/cn.huorong.esm_log.desktop"
        "${DESKTOP_PATH}/cn.huorong.esm_config.desktop"
        "${DESKTOP_PATH}/cn.huorong.esm_update.desktop"
        "${SRC_DIR}/cn.huorong.esm_log.desktop"
        "${SRC_DIR}/cn.huorong.esm_config.desktop"
        "${SRC_DIR}/cn.huorong.esm_update.desktop"
        "${SRC_DIR}/cn.huorong.esm_main.desktop"
        "${ICON_PATH}/config.svg"
        "${ICON_PATH}/log.svg"
        "${ICON_PATH}/update.svg"
    )
    handle_specical_sys
else
    if [ -f $SHARE_DIR/inst/update.deb ]; then
        chmod 644 $SHARE_DIR/inst/update.deb
    fi

    chmod 777 $SHARE_DIR
    chmod 666 $INST_DIR/etc/config
    chmod 777 $SHARE_DIR/scenter

    chmod 666 $INST_DIR/VERSION
    chmod -R +x $INST_DIR/bin

    if [ -e "/etc/systemd/system/hipsdaemon.service" ]; then
        systemctl stop hipsdaemon
        systemctl disable hipsdaemon
        rm -rf /etc/systemd/system/hipsdaemon.service
    fi

    cp $INST_DIR/script/hressclnt.service /etc/systemd/system/hressclnt.service
    chmod a+x /etc/systemd/system/hressclnt.service

    systemctl daemon-reload
    systemctl enable hressclnt.service
    systemctl restart hressclnt.service
fi
