#!/bin/bash

# Скрипт для настройки автоматического бэкапа БД через cron
# Запускается дважды в день: в 00:00 и 12:00

set -e

SCRIPT_DIR="/var/www/platform/prod"
BACKUP_SCRIPT="$SCRIPT_DIR/backup-db-auto.sh"
CRON_USER="root"

echo "=========================================="
echo "Настройка автоматического бэкапа БД"
echo "=========================================="
echo ""

# Проверить, что скрипт существует
if [ ! -f "$BACKUP_SCRIPT" ]; then
    echo "Ошибка: Скрипт $BACKUP_SCRIPT не найден!"
    exit 1
fi

# Сделать скрипт исполняемым
chmod +x "$BACKUP_SCRIPT"
echo "✓ Скрипт сделан исполняемым"

# Создать директорию для бэкапов
mkdir -p "$SCRIPT_DIR/backups"
echo "✓ Директория для бэкапов создана"

# Найти путь к docker (для cron)
DOCKER_PATH=$(which docker 2>/dev/null || echo "/usr/bin/docker")

# Проверить, есть ли уже запись в crontab
# Используем PATH с docker и bash для надежности
CRON_CMD="0 0,12 * * * PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin $BACKUP_SCRIPT >> $SCRIPT_DIR/backups/cron.log 2>&1"

if crontab -u "$CRON_USER" -l 2>/dev/null | grep -q "$BACKUP_SCRIPT"; then
    echo "⚠️  Запись в crontab уже существует"
    echo ""
    echo "Текущий crontab:"
    crontab -u "$CRON_USER" -l | grep "$BACKUP_SCRIPT"
    echo ""
    read -p "Заменить существующую запись? (y/N): " -n 1 -r
    echo ""
    if [[ $REPLY =~ ^[Yy]$ ]]; then
        # Удалить старую запись
        crontab -u "$CRON_USER" -l 2>/dev/null | grep -v "$BACKUP_SCRIPT" | crontab -u "$CRON_USER" -
        # Добавить новую
        (crontab -u "$CRON_USER" -l 2>/dev/null; echo "$CRON_CMD") | crontab -u "$CRON_USER" -
        echo "✓ Запись в crontab обновлена"
    else
        echo "Отменено. Существующая запись сохранена."
        exit 0
    fi
else
    # Добавить новую запись
    (crontab -u "$CRON_USER" -l 2>/dev/null; echo "$CRON_CMD") | crontab -u "$CRON_USER" -
    echo "✓ Запись в crontab добавлена"
fi

echo ""
echo "=========================================="
echo "Настройка завершена!"
echo "=========================================="
echo ""
echo "Расписание бэкапов:"
echo "  - Каждый день в 00:00 (полночь)"
echo "  - Каждый день в 12:00 (полдень)"
echo ""
echo "Проверить crontab:"
echo "  crontab -u $CRON_USER -l"
echo ""
echo "Просмотр логов бэкапов:"
echo "  tail -f $SCRIPT_DIR/backups/backup.log"
echo "  tail -f $SCRIPT_DIR/backups/cron.log"
echo ""
echo "Удалить автоматический бэкап:"
echo "  crontab -u $CRON_USER -l | grep -v '$BACKUP_SCRIPT' | crontab -u $CRON_USER -"
