#!/bin/bash

Скрипт для обновления Discord с удалением старой версии и настройкой прав chrome-sandbox

Путь к директории Discord

DISCORD_DIR="/home/naka/Discord"

URL для загрузки последней версии Discord (официальный API)

DISCORD_URL="https://discord.com/api/download?platform=linux&format=tar.gz"

Временный файл для загрузки

TEMP_FILE="/tmp/Discord.tar.gz"

Минимальный размер файла для проверки успешного скачивания (в байтах, Discord ~200MB+)

MIN_SIZE=100000000

Проверка, запущен ли скрипт с правами root

if [ "$EUID" -ne 0 ]; then
echo "Ошибка: Скрипт должен быть запущен с правами root (sudo)."
exit 1
fi

Проверка, существует ли директория Discord

if [ ! -d "$DISCORD_DIR" ]; then
echo "Ошибка: Директория $DISCORD_DIR не существует."
exit 1
fi

Проверка, запущен ли Discord

if pgrep -f "Discord" > /dev/null; then
echo "Discord запущен. Закрываем процесс..."

pkill -f "Discord"

killall Discord
sleep 2

Дополнительная проверка, чтобы убедиться, что процесс закрыт

if pgrep -f "Discord" > /dev/null; then
echo "Предупреждение: Discord не закрылся полностью. Попробуйте закрыть вручную."
fi
fi

Скачивание последней версии

echo "Скачивание последней версии Discord..."
wget -O "$TEMP_FILE" "$DISCORD_URL" --quiet --show-progress
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось скачать обновление. Проверьте интернет-соединение или URL."
exit 1
fi

Проверка размера файла (чтобы убедиться, что скачивание прошло успешно)

FILE_SIZE=$(stat -c%s "$TEMP_FILE" 2>/dev/null || echo 0)
if [ "$FILE_SIZE" -lt "$MIN_SIZE" ]; then
echo "Ошибка: Скачанный файл слишком мал ($FILE_SIZE байт). Возможно, ошибка 403 или другой HTTP-код. Удаляем и выходим."
rm -f "$TEMP_FILE"
exit 1
fi

echo "Скачивание успешно: файл размером $((FILE_SIZE / 1024 / 1024)) MB."

Удаление старой версии (с резервным копированием, если нужно; здесь просто удаляем)

echo "Удаление старой версии Discord..."
rm -rf "$DISCORD_DIR"/*
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось удалить старую версию."
rm -f "$TEMP_FILE"
exit 1
fi

Распаковка новой версии

echo "Распаковка новой версии..."
tar -xzf "$TEMP_FILE" -C "$DISCORD_DIR" --strip-components=1
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось распаковать архив. Проверьте структуру архива."
rm -f "$TEMP_FILE"
exit 1
fi

Установка прав для chrome-sandbox, если файл существует

SANDBOX_PATH="$DISCORD_DIR/chrome-sandbox"
if [ -f "$SANDBOX_PATH" ]; then
echo "Настройка прав для chrome-sandbox..."
chown root: "$SANDBOX_PATH"
chmod 4755 "$SANDBOX_PATH"
if [ $? -ne 0 ]; then
echo "Ошибка: Не удалось настроить права для chrome-sandbox."
exit 1
fi
echo "Права для chrome-sandbox установлены успешно."
else
echo "Предупреждение: Файл chrome-sandbox не найден в $SANDBOX_PATH. Возможно, структура изменилась."
fi

Удаление временного файла

echo "Удаление временного файла..."
rm -f "$TEMP_FILE"

echo "Обновление Discord успешно завершено! Можно запускать Discord."

exit 0

[file-name 000225_2025-09-16_20-08-22.txt]