31 lines
1.1 KiB
Bash
Executable File
31 lines
1.1 KiB
Bash
Executable File
#!/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"
|