Web Site Pentester (Web Site Güvenlik Analiz Aracı) / build_deb.sh
build_deb.sh 106 satır • 3.16 KB
#!/bin/bash

# Hata olursa işlemi durdur
set -e

# --- AYARLAR ---
APP_NAME="sitepentest"
VERSION="1.0"
ARCH="amd64"
MAINTAINER="Tarik Vardar <info@tarikvardar.com.tr>"
DESCRIPTION="SitePenTest Web Guvenlik Tarama Araci"
# ---------------

echo "🚀 SitePenTest v$VERSION (Pardus/Debian) Paketleme Başlıyor..."

# 1. TEMİZLİK
# Eski derleme kalıntılarını temizle ki çakışma olmasın
echo "[+] Temizlik yapılıyor..."
rm -rf build dist package venv *.spec *.deb

# 2. SANAL ORTAM VE KURULUM
echo "[+] Sanal ortam hazırlanıyor..."
python3 -m venv venv
source venv/bin/activate

echo "[+] Bağımlılıklar (BeautifulSoup vb.) yükleniyor..."
pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller

# 3. PYINSTALLER İLE DERLEME
echo "[+] Uygulama derleniyor ve paketleniyor (Binary)..."
# --add-data ile assets klasörünü programın içine gömüyoruz
# --hidden-import ile bs4'ün kesin olarak alınmasını sağlıyoruz
pyinstaller --noconsole --onefile --name "$APP_NAME" \
    --add-data "assets:assets" \
    --hidden-import "bs4" \
    --hidden-import "requests" \
    main.py

# 4. DEB PAKET KLASÖR YAPISI
echo "[+] Linux dosya sistemi hiyerarşisi oluşturuluyor..."
mkdir -p package/DEBIAN
mkdir -p package/usr/bin
mkdir -p package/usr/share/applications
mkdir -p package/usr/share/icons/hicolor/256x256/apps

# 5. DOSYALARIN KOPYALANMASI
echo "[+] Dosyalar yerlerine yerleştiriliyor..."

# A) Çalıştırılabilir Dosya
cp "dist/$APP_NAME" package/usr/bin/
chmod +x "package/usr/bin/$APP_NAME"

# B) Uygulama İkonu (Başlat Menüsü İçin)
if [ -f "assets/logo.png" ]; then
    cp assets/logo.png "package/usr/share/icons/hicolor/256x256/apps/$APP_NAME.png"
else
    echo "⚠️ UYARI: assets/logo.png bulunamadı! Menüde ikon görünmeyebilir."
fi

# 6. CONTROL DOSYASI
echo "[+] Control dosyası yazılıyor..."
cat <<EOF > package/DEBIAN/control
Package: $APP_NAME
Version: $VERSION
Architecture: $ARCH
Maintainer: $MAINTAINER
Installed-Size: $(du -ks package/ | cut -f1)
Section: utils
Priority: optional
Description: $DESCRIPTION
 SitePenTest, sistem yöneticileri için geliştirilmiş,
 WAF bypass özellikli, internetsiz çalışabilen
 GUI tabanlı yerli güvenlik tarayıcısıdır.
EOF

# 7. DESKTOP KISAYOL DOSYASI
echo "[+] Masaüstü kısayolu (.desktop) oluşturuluyor..."
cat <<EOF > package/usr/share/applications/$APP_NAME.desktop
[Desktop Entry]
Version=$VERSION
Type=Application
Name=SitePenTest
Comment=Gelişmiş Web Güvenlik Tarayıcısı
Exec=/usr/bin/$APP_NAME
Icon=$APP_NAME
Terminal=false
Categories=Utility;Security;System;
StartupWMClass=$APP_NAME
EOF

# 8. PAKETLEME
echo "[+] .deb paketi oluşturuluyor..."
dpkg-deb --build package "${APP_NAME}_v${VERSION}_${ARCH}.deb"

# 9. BİTİŞ TEMİZLİĞİ
echo "[+] Geçici dosyalar temizleniyor..."
rm -rf build dist package venv *.spec

echo "-------------------------------------------------------"
echo "✅ İŞLEM BAŞARIYLA TAMAMLANDI!"
echo "📂 Paket: ${APP_NAME}_v${VERSION}_${ARCH}.deb"
echo "-------------------------------------------------------"
echo "👉 Kurulum Komutu: sudo dpkg -i ${APP_NAME}_v${VERSION}_${ARCH}.deb"
echo "-------------------------------------------------------"