2026-04-11 15:37:11 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
# Build the Music Player plugin as a .bundle for MioIsland
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
PLUGIN_NAME="music-player"
|
|
|
|
|
BUNDLE_NAME="${PLUGIN_NAME}.bundle"
|
|
|
|
|
BUILD_DIR="build"
|
|
|
|
|
SOURCES="Sources/*.swift"
|
|
|
|
|
|
|
|
|
|
echo "Building ${PLUGIN_NAME} plugin..."
|
|
|
|
|
|
|
|
|
|
# Clean
|
|
|
|
|
rm -rf "${BUILD_DIR}"
|
|
|
|
|
mkdir -p "${BUILD_DIR}/${BUNDLE_NAME}/Contents/MacOS"
|
|
|
|
|
|
|
|
|
|
# Compile to dynamic library
|
|
|
|
|
swiftc \
|
|
|
|
|
-emit-library \
|
|
|
|
|
-module-name MusicPlugin \
|
|
|
|
|
-target arm64-apple-macos15.0 \
|
|
|
|
|
-sdk $(xcrun --show-sdk-path) \
|
|
|
|
|
-o "${BUILD_DIR}/${BUNDLE_NAME}/Contents/MacOS/MusicPlugin" \
|
|
|
|
|
${SOURCES}
|
|
|
|
|
|
|
|
|
|
# Copy Info.plist
|
|
|
|
|
cp Info.plist "${BUILD_DIR}/${BUNDLE_NAME}/Contents/"
|
|
|
|
|
|
|
|
|
|
# Ad-hoc sign
|
|
|
|
|
codesign --force --sign - "${BUILD_DIR}/${BUNDLE_NAME}"
|
|
|
|
|
|
|
|
|
|
echo "✓ Built ${BUILD_DIR}/${BUNDLE_NAME}"
|
2026-04-13 01:33:19 +00:00
|
|
|
|
|
|
|
|
# Create zip for marketplace upload
|
|
|
|
|
cd "${BUILD_DIR}"
|
|
|
|
|
zip -r "${PLUGIN_NAME}.zip" "${BUNDLE_NAME}"
|
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
|
|
echo "✓ Created ${BUILD_DIR}/${PLUGIN_NAME}.zip (for marketplace upload)"
|
2026-04-11 15:37:11 +00:00
|
|
|
echo ""
|
2026-04-13 01:33:19 +00:00
|
|
|
echo "Install locally:"
|
2026-04-11 15:37:11 +00:00
|
|
|
echo " cp -r ${BUILD_DIR}/${BUNDLE_NAME} ~/.config/codeisland/plugins/"
|
2026-04-13 01:33:19 +00:00
|
|
|
echo ""
|
|
|
|
|
echo "Upload to marketplace:"
|
|
|
|
|
echo " ${BUILD_DIR}/${PLUGIN_NAME}.zip"
|