#!/bin/bash # Baut ein Drag-and-drop-DMG: RemminaMac.app + Programme-Symlink. # Nur Bordmittel (hdiutil). Usage: ./scripts/build-dmg.sh [version] set -euo pipefail VERSION="${1:-0.1.0}" ROOT="$(cd "$(dirname "$0")/.." && pwd)" DIST="$ROOT/dist" APP="$DIST/RemminaMac.app" VOL="RemminaMac $VERSION" RW_DMG="$DIST/.rw.RemminaMac-$VERSION.dmg" FINAL_DMG="$DIST/RemminaMac-$VERSION-macos-arm64.dmg" echo "[build-dmg] Version: $VERSION" [ -d "$APP" ] || { echo "[build-dmg] $APP fehlt — erst ./scripts/build-app.sh $VERSION"; exit 1; } rm -f "$RW_DMG" "$FINAL_DMG" # 1. Beschreibbares DMG mit App + Programme-Link erzeugen hdiutil create -volname "$VOL" -srcfolder "$APP" -ov -format UDRW "$RW_DMG" > /dev/null MOUNT="$(hdiutil attach -readwrite -nobrowse "$RW_DMG" | grep -E '/Volumes/' | sed 's/.*\/Volumes\//\/Volumes\//')" echo "[build-dmg] Gemountet: $MOUNT" ln -s /Applications "$MOUNT/Programme" || true ln -s /Applications "$MOUNT/Applications" || true # Optionales Fenster-Layout (schlägt headless ggf. fehl — nicht fatal) osascript < /dev/null # 2. Komprimieren + Checksumme hdiutil convert "$RW_DMG" -format UDZO -imagekey zlib-level=9 -o "$FINAL_DMG" > /dev/null rm -f "$RW_DMG" shasum -a 256 "$FINAL_DMG" > "$FINAL_DMG.sha256" echo "[build-dmg] Fertig:" ls -lh "$FINAL_DMG" "$FINAL_DMG.sha256" cat "$FINAL_DMG.sha256" hdiutil imageinfo "$FINAL_DMG" 2>/dev/null | grep -E 'Format|Size' | head -n 4 || true