spine-runtimes/tests/generate-serializers.sh
2025-07-29 21:39:14 +02:00

85 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
set -e
set -o pipefail
cd "$(dirname "$0")"
# Source logging utilities
source ../formatters/logging/logging.sh
log_title "Spine Serializer Generator"
# Check if node/npm is available
if ! command -v npm &> /dev/null; then
log_fail "npm is not installed"
exit 1
fi
# Install dependencies if node_modules doesn't exist
if [ ! -d "node_modules" ]; then
log_action "Installing dependencies"
if npm install > /tmp/npm-install.log 2>&1; then
log_ok
else
log_detail "$(cat /tmp/npm-install.log)"
exit 1
fi
fi
log_action "Analyzing Java API"
if output=$(npx -y tsx src/analyze-java-api.ts 2>&1); then
log_ok
else
log_fail
log_detail "$output"
exit 1
fi
log_action "Generating intermediate representation"
if output=$(npx -y tsx src/generate-serializer-ir.ts 2>&1); then
log_ok
else
log_fail
log_detail "$output"
exit 1
fi
log_action "Generating Java SkeletonSerializer"
if output=$(npx -y tsx src/generate-java-serializer.ts 2>&1); then
log_ok
else
log_fail "Failed to generate Java serializer"
log_detail "$output"
exit 1
fi
../formatters/format-java.sh
log_action "Generating C++ SkeletonSerializer"
if output=$(npx -y tsx src/generate-cpp-serializer.ts 2>&1); then
log_ok
else
log_fail "Failed to generate C++ serializer"
log_detail "$output"
exit 1
fi
../formatters/format-cpp.sh
log_action "Generating Haxe SkeletonSerializer"
if output=$(npx -y tsx src/generate-haxe-serializer.ts 2>&1); then
log_ok
else
log_fail "Failed to generate Haxe serializer"
log_detail "$output"
exit 1
fi
log_action "Type checking Haxe serializer"
if output=$(cd ../spine-haxe && haxe -cp spine-haxe --no-output -main spine.utils.SkeletonSerializer 2>&1); then
log_ok
else
log_fail "Haxe serializer type check failed"
log_detail "$output"
exit 1
fi
log_summary "✓ Serializer generation completed successfully"