#!/usr/bin/env bash set -euo pipefail APP=imajviewer VERSION=1.0.0 DIST_DIR="$(cd "$(dirname "$0")" && pwd)" PROJECT_DIR="$(dirname "$DIST_DIR")" RELEASE_DIR="${PROJECT_DIR}/build/linux/x64/release/bundle" DEB="${DIST_DIR}/${APP}_${VERSION}_amd64.deb" # ── Geçici çalışma dizini ── TMPDIR=$(mktemp -d) trap "rm -rf $TMPDIR" EXIT echo "• Eski .deb çıkartılıyor…" dpkg-deb -x "$DEB" "$TMPDIR/pkg" echo "• Kontrol dosyaları kaynaktan kopyalanıyor…" mkdir -p "$TMPDIR/pkg/DEBIAN" cp "${PROJECT_DIR}/deb/DEBIAN/control" "$TMPDIR/pkg/DEBIAN/control" cp "${PROJECT_DIR}/deb/DEBIAN/postinst" "$TMPDIR/pkg/DEBIAN/postinst" cp "${PROJECT_DIR}/deb/DEBIAN/prerm" "$TMPDIR/pkg/DEBIAN/prerm" chmod 755 "$TMPDIR/pkg/DEBIAN/postinst" "$TMPDIR/pkg/DEBIAN/prerm" echo "• Yeni release binary ve kütüphaneler kopyalanıyor…" cp -r "$RELEASE_DIR"/* "$TMPDIR/pkg/usr/lib/${APP}/" echo "• Symlink güncelleniyor…" ln -sf "/usr/lib/${APP}/${APP}" "$TMPDIR/pkg/usr/bin/${APP}" echo "• .desktop dosyası kaynaktan kopyalanıyor…" DESKTOP_FILE="$TMPDIR/pkg/usr/share/applications/${APP}.desktop" cp "${PROJECT_DIR}/deb/usr/share/applications/${APP}.desktop" "$DESKTOP_FILE" chmod 644 "$DESKTOP_FILE" echo "• MIME tanımı kaynaktan kopyalanıyor…" MIME_FILE="$TMPDIR/pkg/usr/share/mime/packages/${APP}.xml" cp "${PROJECT_DIR}/deb/usr/share/mime/packages/${APP}.xml" "$MIME_FILE" chmod 644 "$MIME_FILE" echo "• İkonlar kopyalanıyor (index.theme hariç — hicolor-icon-theme sahipli)…" mkdir -p "$TMPDIR/pkg/usr/share/icons/hicolor" rm -f "$TMPDIR/pkg/usr/share/icons/hicolor/index.theme" cp -r "${PROJECT_DIR}/deb/usr/share/icons/hicolor/." "$TMPDIR/pkg/usr/share/icons/hicolor/" find "$TMPDIR/pkg/usr/share/icons/hicolor" -type f -exec chmod 644 {} + echo "• Plugin RUNPATH düzeltiliyor (\$ORIGIN)…" for so in "$TMPDIR/pkg/usr/lib/${APP}/lib/"*.so; do [ -f "$so" ] && patchelf --set-rpath '$ORIGIN' "$so" 2>/dev/null || true done echo "• Yeni .deb paketi oluşturuluyor…" fakeroot dpkg-deb --build "$TMPDIR/pkg" "${DEB}.tmp" >/dev/null mv "${DEB}.tmp" "$DEB" echo "✓ ${DEB} güncellendi ($(du -h "$DEB" | cut -f1))"