#!/bin/bash

set -e

LOG_DIR="/var/log/rudesktop"
LOG_FILE="$LOG_DIR/update_$(date +'%Y%m%d_%H%M%S').log"
sudo mkdir -p $LOG_DIR

log_message() {
    echo "$(date +'%Y-%m-%d %H:%M:%S') - $1" | sudo tee -a $LOG_FILE
}

log_message "Начало установки/обновления сервера rudesktop."

# Проверка системы
if command -v dpkg >/dev/null 2>&1; then
    log_message "Эта система на базе DEB."
else
    log_message "Эта система не на базе DEB. Выход."
    exit 1
fi

# Добавление репозитория и публичного ключа
log_message "Добавление репозитория и публичного ключа."
wget -qO - http://rudesktop.ru/repos/stable2.7/rudesktop.gpg | sudo apt-key add -
echo "deb https://rudesktop.ru/repos/stable2.7 stable2.7 non-free" | sudo tee /etc/apt/sources.list.d/rudesktop.list

# Обновление системы
#log_message "Обновление системы."
#sudo apt-get update && sudo apt-get upgrade -y
#if [ $? -eq 0 ]; then
#    log_message "Система успешно обновлена."
#else
#    log_message "Ошибка при обновлении системы."
#    exit 1
#fi

sudo apt-get update -y

if ! dpkg-query -l rudesktop-server > /dev/null 2>&1; then 
    # Установка сервера rudesktop
    log_message "Установка сервера rudesktop."
    sudo apt-get install rudesktop-server -y
    if [ $? -eq 0 ]; then
        log_message "Сервер rudesktop успешно установлен."
    else
        log_message "Ошибка при установке сервера rudesktop."
        exit 1
    fi
else
    # Обновление сервера rudesktop
    log_message "Обновление сервера rudesktop."
    sudo apt-get install --only-upgrade rudesktop-server -y
    if [ $? -eq 0 ]; then
        log_message "Сервер rudesktop успешно обновлён."
    else
        log_message "Ошибка при обновлении сервера rudesktop."
        exit 1
    fi
fi

log_message "Установка/обновление сервера rudesktop завершено."
