#!/bin/bash set -euo pipefail if [[ $# -ne 5 ]]; then echo "Usage: $0 /path/to/App.app /path/to/ffmpeg /path/to/yt-dlp /path/to/deno /path/to/fpcalc" >&2 exit 2 fi APP_PATH="$1" FFMPEG_BINARY="$2" YTDLP_BINARY="$3" DENO_BINARY="$4" FPCALC_BINARY="$5" [[ -d "$APP_PATH/Contents" ]] || { echo "App bundle not found: $APP_PATH" >&2; exit 1; } for TOOL_BINARY in "$FFMPEG_BINARY" "$YTDLP_BINARY" "$DENO_BINARY" "$FPCALC_BINARY"; do [[ -x "$TOOL_BINARY" ]] || { echo "Tool is not executable: $TOOL_BINARY" >&2; exit 1; } done FFMPEG_ENCODERS="$("$FFMPEG_BINARY" -hide_banner -encoders 2>/dev/null)" [[ "$FFMPEG_ENCODERS" == *libmp3lame* ]] || { echo "FFmpeg must include libmp3lame" >&2; exit 1; } RESOURCES="$APP_PATH/Contents/Resources" mkdir -p "$RESOURCES" install -m 755 "$FFMPEG_BINARY" "$RESOURCES/ffmpeg" install -m 755 "$YTDLP_BINARY" "$RESOURCES/yt-dlp" install -m 755 "$DENO_BINARY" "$RESOURCES/deno" install -m 755 "$FPCALC_BINARY" "$RESOURCES/fpcalc" codesign --force --deep --sign - "$APP_PATH" echo "Bundled FFmpeg, yt-dlp, Deno and fpcalc into $APP_PATH"