Skip to main content
Glama
build-all.sh3.18 kB
#!/bin/bash # Universal bash script to build self-contained executables for all platforms # Works on macOS and Linux set -uo pipefail CONFIGURATION="${1:-Release}" PROJECT_FILE="${2:-com.IvanMurzak.Unity.MCP.Server.csproj}" SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" PUBLISH_ROOT="${SCRIPT_DIR}/publish" echo "🚀 Building self-contained executables for all platforms..." # Clean publish root if [ -d "${PUBLISH_ROOT}" ]; then echo "🧹 Cleaning existing publish folder..." rm -rf "${PUBLISH_ROOT}" || { echo "Failed to remove publish folder"; exit 1; } fi mkdir -p "${PUBLISH_ROOT}" || { echo "Failed to create publish folder"; exit 1; } runtimes=( "win-x64" "win-x86" "win-arm64" "linux-x64" "linux-arm64" "osx-x64" "osx-arm64" ) success=0 failed=0 for runtime in "${runtimes[@]}"; do echo "🔨 Building for ${runtime}..." OUTPUT_PATH="${PUBLISH_ROOT}/${runtime}" mkdir -p "${OUTPUT_PATH}" echo "Running: dotnet publish ${PROJECT_FILE} -c ${CONFIGURATION} -r ${runtime} --self-contained true -p:PublishSingleFile=true -o ${OUTPUT_PATH}" if dotnet publish "${PROJECT_FILE}" \ -c "${CONFIGURATION}" \ -r "${runtime}" \ --self-contained true \ -p:PublishSingleFile=true \ -o "${OUTPUT_PATH}" 2>&1; then echo "✅ Successfully built ${runtime} -> ${OUTPUT_PATH}" ((success++)) else echo "❌ Failed to build ${runtime}" ((failed++)) fi echo "" done echo "📊 Build Summary:" echo "Success: $success" echo "Failed: $failed" if [ $failed -eq 0 ]; then echo "" echo "🎉 All builds completed successfully!" echo "📁 Executables are located in: ${PUBLISH_ROOT}/{runtime}/" echo "" echo "📦 Creating zip archives for each runtime..." # Change to publish directory cd "${PUBLISH_ROOT}" zip_success=0 zip_failed=0 for runtime in "${runtimes[@]}"; do if [ -d "${runtime}" ]; then echo "🗜️ Creating zip for ${runtime}..." ZIP_NAME="unity-mcp-server-${runtime}.zip" if zip -r "${ZIP_NAME}" "${runtime}/" > /dev/null 2>&1; then echo "✅ Successfully created ${ZIP_NAME}" ((zip_success++)) else echo "❌ Failed to create ${ZIP_NAME}" ((zip_failed++)) fi else echo "⚠️ Skipping ${runtime} - directory not found" ((zip_failed++)) fi done echo "" echo "📊 Zip Creation Summary:" echo "Success: $zip_success" echo "Failed: $zip_failed" if [ $zip_failed -eq 0 ]; then echo "" echo "🎉 All zip archives created successfully!" echo "📁 Zip files are located in: ${PUBLISH_ROOT}/" echo "📋 Created files:" ls -la *.zip 2>/dev/null || echo "No zip files found" else echo "" echo "⚠️ Some zip creations failed. Check the output above." fi else echo "" echo "⚠️ Some builds failed. Check the output above. Partial outputs: ${PUBLISH_ROOT}" exit 1 fi

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/IvanMurzak/Unity-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server