#!/bin/bash
# Скрипт для проверки файловой системы репозитория Gitea
# Выполните на сервере с административным доступом

REPO_PATH="/poignatov/play-life.git"
GITEA_USER="git"  # или пользователь, под которым работает Gitea

echo "=== Проверка существования репозитория ==="
if [ -d "$REPO_PATH" ]; then
    echo "✓ Репозиторий существует"
else
    echo "✗ Репозиторий НЕ найден: $REPO_PATH"
    exit 1
fi

echo ""
echo "=== Проверка прав доступа ==="
ls -ld "$REPO_PATH"

echo ""
echo "=== Проверка владельца ==="
OWNER=$(stat -c '%U:%G' "$REPO_PATH" 2>/dev/null || stat -f '%Su:%Sg' "$REPO_PATH" 2>/dev/null)
echo "Владелец: $OWNER"

echo ""
echo "=== Проверка размера репозитория ==="
du -sh "$REPO_PATH"

echo ""
echo "=== Проверка свободного места ==="
df -h "$REPO_PATH" | tail -1

echo ""
echo "=== Проверка ключевых файлов Git ==="
if [ -f "$REPO_PATH/config" ]; then
    echo "✓ config существует"
else
    echo "✗ config НЕ найден"
fi

if [ -d "$REPO_PATH/objects" ]; then
    echo "✓ objects/ существует"
    echo "  Количество объектов: $(find "$REPO_PATH/objects" -type f | wc -l)"
else
    echo "✗ objects/ НЕ найден"
fi

if [ -f "$REPO_PATH/HEAD" ]; then
    echo "✓ HEAD существует"
    echo "  Текущая ветка: $(cat "$REPO_PATH/HEAD")"
else
    echo "✗ HEAD НЕ найден"
fi

if [ -f "$REPO_PATH/refs/heads/main" ]; then
    echo "✓ refs/heads/main существует"
    echo "  Последний коммит: $(cat "$REPO_PATH/refs/heads/main")"
else
    echo "✗ refs/heads/main НЕ найден"
fi

echo ""
echo "=== Проверка целостности репозитория ==="
cd "$REPO_PATH"
if git fsck --no-progress 2>&1 | head -20; then
    echo "✓ Репозиторий цел"
else
    echo "✗ Обнаружены проблемы с целостностью"
fi

echo ""
echo "=== Проверка логов Gitea ==="
echo "Проверьте логи Gitea на наличие ошибок:"
echo "  - /var/log/gitea/gitea.log"
echo "  - или в директории, указанной в конфиге Gitea"
