#!/bin/bash

echo "🚨 СРОЧНОЕ ИСПРАВЛЕНИЕ ПУСТОГО РЕПОЗИТОРИЯ 🚨"

REPO_PATH="/var/www/html/repo.notpeer.icu"  # замените на ваш путь
cd "$REPO_PATH"

echo "Текущий статус файлов:"
ls -la Packages* Release

# 1. Удаляем битые файлы
rm -f Packages Packages.gz Packages.bz2

# 2. Создаем минимальный Packages файл
echo "Создаю базовый Packages файл..."
cat > Packages << 'PKG'
Package: com.notpeer.example
Name: Example Package
Version: 1.0-1
Architecture: iphoneos-arm
Description: Example package for notpeer.icu repository
Author: notpeer.icu
Maintainer: notpeer.icu <admin@notpeer.icu>
Section: Utilities
Depends: firmware (>= 6.0)
Tag: purpose::console
Filename: ./example.deb
Size: 1024
MD5sum: d41d8cd98f00b204e9800998ecf8427e
SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709
SHA256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
PKG

# 3. Создаем тестовый .deb файл если его нет
if [ ! -f "example.deb" ]; then
    echo "Создаю тестовый .deb файл..."
    mkdir -p test-package/DEBIAN
    
    cat > test-package/DEBIAN/control << CONTROL
Package: com.notpeer.test
Name: Test Package
Version: 1.0
Architecture: iphoneos-arm
Description: Test package for notpeer.icu
Author: notpeer.icu
Maintainer: notpeer.icu
Section: Test
Depends: firmware (>= 6.0)
CONTROL
    
    mkdir -p test-package/usr/bin
    echo '#!/bin/bash
echo "notpeer.icu test package working!"' > test-package/usr/bin/test-notpeer
    chmod +x test-package/usr/bin/test-notpeer
    
    dpkg-deb -b test-package example.deb 2>/dev/null
    rm -rf test-package
fi

# 4. Обновляем Packages с реальным файлом
echo "Обновляю Packages с реальными данными..."
dpkg-deb -I example.deb 2>/dev/null | grep -E "Package|Version|Architecture|Maintainer|Description|Name" > /tmp/control
FILENAME="example.deb"
SIZE=$(stat -c%s "$FILENAME" 2>/dev/null || stat -f%z "$FILENAME")
MD5=$(md5sum "$FILENAME" | cut -d' ' -f1)
SHA1=$(sha1sum "$FILENAME" | cut -d' ' -f1)
SHA256=$(sha256sum "$FILENAME" | cut -d' ' -f1)

cat > Packages << EOF
$(cat /tmp/control)
Installed-Size: 10
Filename: ./$FILENAME
Size: $SIZE
MD5sum: $MD5
SHA1: $SHA1
SHA256: $SHA256

EOF

# 5. Сжимаем файлы
echo "Сжимаю Packages..."
gzip -9c Packages > Packages.gz
bzip2 -9c Packages > Packages.bz2

# 6. Проверяем размеры
echo "Проверка созданных файлов:"
ls -la Packages*

# 7. Обновляем Release файл
echo "Обновляю Release файл..."

# Получаем хэши
PACK_SIZE=$(stat -c%s Packages 2>/dev/null || stat -f%z Packages)
PACK_GZ_SIZE=$(stat -c%s Packages.gz 2>/dev/null || stat -f%z Packages.gz)
PACK_BZ2_SIZE=$(stat -c%s Packages.bz2 2>/dev/null || stat -f%z Packages.bz2)

PACK_MD5=$(md5sum Packages | cut -d' ' -f1)
PACK_GZ_MD5=$(md5sum Packages.gz | cut -d' ' -f1)
PACK_BZ2_MD5=$(md5sum Packages.bz2 | cut -d' ' -f1)

cat > Release << RELEASE
Origin: notpeer.icu Repository
Label: notpeer.icu
Suite: stable
Version: 1.0
Codename: ios
Architectures: iphoneos-arm
Components: main
Description: <span class="cydia-title">notpeer.icu Repository</span><br>Custom repository for iOS
Author: notpeer.icu
Icon: https://repo.notpeer.icu/CydiaIcon.png
Date: $(date -R)
MD5Sum:
 $PACK_MD5 $PACK_SIZE Packages
 $PACK_GZ_MD5 $PACK_GZ_SIZE Packages.gz
 $PACK_BZ2_MD5 $PACK_BZ2_SIZE Packages.bz2
SHA1:
 $(sha1sum Packages | cut -d' ' -f1) $PACK_SIZE Packages
 $(sha1sum Packages.gz | cut -d' ' -f1) $PACK_GZ_SIZE Packages.gz
 $(sha1sum Packages.bz2 | cut -d' ' -f1) $PACK_BZ2_SIZE Packages.bz2
SHA256:
 $(sha256sum Packages | cut -d' ' -f1) $PACK_SIZE Packages
 $(sha256sum Packages.gz | cut -d' ' -f1) $PACK_GZ_SIZE Packages.gz
 $(sha256sum Packages.bz2 | cut -d' ' -f1) $PACK_BZ2_SIZE Packages.bz2
RELEASE

echo ""
echo "✅ ФАЙЛЫ ИСПРАВЛЕНЫ!"
echo "Packages: $(stat -c%s Packages) байт"
echo "Packages.gz: $(stat -c%s Packages.gz) байт"
echo "Packages.bz2: $(stat -c%s Packages.bz2) байт"
echo ""
echo "📱 Теперь Cydia должен видеть репозиторий!"
