#!/bin/bash # Packages a built plugin in the layout OBS loads plugins from: # Linux: extract into ~/.config/obs-studio/plugins/ # Windows: extract into C:\ProgramData\obs-studio\plugins\ # macOS: extract into ~/Library/Application Support/obs-studio/plugins/ # Usage: package.sh set -euo pipefail TARGET="$1" VERSION="$2" OUT="$(realpath "$3")" NAME=obs-streamplace BUILD="$(dirname "$0")/build-$TARGET" STAGE="$(mktemp -d)" trap 'rm -rf "$STAGE"' EXIT case "$TARGET" in linux-*) mkdir -p "$STAGE/$NAME/bin/64bit" cp "$BUILD/$NAME.so" "$STAGE/$NAME/bin/64bit/" tar -czf "$OUT/$NAME-$VERSION-$TARGET.tar.gz" -C "$STAGE" "$NAME" ;; windows-*) mkdir -p "$STAGE/$NAME/bin/64bit" cp "$BUILD/$NAME.dll" "$STAGE/$NAME/bin/64bit/" rm -f "$OUT/$NAME-$VERSION-$TARGET.zip" (cd "$STAGE" && zip -qr "$OUT/$NAME-$VERSION-$TARGET.zip" "$NAME") ;; darwin-*) BUNDLE="$STAGE/$NAME.plugin/Contents" mkdir -p "$BUNDLE/MacOS" cp "$BUILD/$NAME.dylib" "$BUNDLE/MacOS/$NAME" cat >"$BUNDLE/Info.plist" < CFBundleName $NAME CFBundleIdentifier place.stream.$NAME CFBundleExecutable $NAME CFBundlePackageType BNDL CFBundleInfoDictionaryVersion 6.0 CFBundleShortVersionString $VERSION LSMinimumSystemVersion 11.0 EOF tar -czf "$OUT/$NAME-$VERSION-$TARGET.tar.gz" -C "$STAGE" "$NAME.plugin" ;; *) echo "unknown target $TARGET" >&2 exit 1 ;; esac