|
@@ -1,6 +1,13 @@
|
|
-#!/bin/sh
|
|
|
|
|
|
+#!/bin/bash
|
|
set -e
|
|
set -e
|
|
|
|
+cd "$(dirname "$0")"
|
|
|
|
|
|
|
|
+# Source logging utilities
|
|
|
|
+source ../formatters/logging/logging.sh
|
|
|
|
+
|
|
|
|
+log_title "Spine TypeScript Publisher"
|
|
|
|
+
|
|
|
|
+# Get current version
|
|
currentVersion=$(grep -o '"version": "[^"]*' package.json | grep -o '[^"]*$')
|
|
currentVersion=$(grep -o '"version": "[^"]*' package.json | grep -o '[^"]*$')
|
|
major=$(echo "$currentVersion" | cut -d. -f1)
|
|
major=$(echo "$currentVersion" | cut -d. -f1)
|
|
minor=$(echo "$currentVersion" | cut -d. -f2)
|
|
minor=$(echo "$currentVersion" | cut -d. -f2)
|
|
@@ -8,23 +15,68 @@ patch=$(echo "$currentVersion" | cut -d. -f3)
|
|
newPatch=$((patch + 1))
|
|
newPatch=$((patch + 1))
|
|
newVersion="$major.$minor.$newPatch"
|
|
newVersion="$major.$minor.$newPatch"
|
|
|
|
|
|
-echo "current version: $currentVersion"
|
|
|
|
-echo "new version: $newVersion"
|
|
|
|
-
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-canvas/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-canvaskit/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-core/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-phaser-v3/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-phaser-v4/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-pixi-v7/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-pixi-v8/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-player/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-threejs/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-webgl/package.json
|
|
|
|
-sed -i '' "s/$currentVersion/$newVersion/" spine-webcomponents/package.json
|
|
|
|
-
|
|
|
|
-rm package-lock.json
|
|
|
|
-rm -rf node_modules/@esotericsoftware
|
|
|
|
-npm install --workspaces
|
|
|
|
-npm publish --access public --workspaces
|
|
|
|
|
|
+log_section "Version Management"
|
|
|
|
+log_detail "Current version: $currentVersion"
|
|
|
|
+log_detail "New version: $newVersion"
|
|
|
|
+
|
|
|
|
+log_section "Updating Package Versions"
|
|
|
|
+packages=(
|
|
|
|
+ "package.json"
|
|
|
|
+ "spine-canvas/package.json"
|
|
|
|
+ "spine-canvaskit/package.json"
|
|
|
|
+ "spine-core/package.json"
|
|
|
|
+ "spine-phaser-v3/package.json"
|
|
|
|
+ "spine-phaser-v4/package.json"
|
|
|
|
+ "spine-pixi-v7/package.json"
|
|
|
|
+ "spine-pixi-v8/package.json"
|
|
|
|
+ "spine-player/package.json"
|
|
|
|
+ "spine-threejs/package.json"
|
|
|
|
+ "spine-webgl/package.json"
|
|
|
|
+ "spine-webcomponents/package.json"
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+for package in "${packages[@]}"; do
|
|
|
|
+ log_action "Updating $package"
|
|
|
|
+ if sed -i '' "s/$currentVersion/$newVersion/" "$package" 2>/dev/null; then
|
|
|
|
+ log_ok "Updated $package"
|
|
|
|
+ else
|
|
|
|
+ log_fail "Failed to update $package"
|
|
|
|
+ exit 1
|
|
|
|
+ fi
|
|
|
|
+done
|
|
|
|
+
|
|
|
|
+log_section "Preparing for Publish"
|
|
|
|
+log_action "Removing package-lock.json"
|
|
|
|
+if rm package-lock.json 2>/dev/null; then
|
|
|
|
+ log_ok "Removed package-lock.json"
|
|
|
|
+else
|
|
|
|
+ log_warn "package-lock.json not found or already removed"
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+log_action "Cleaning @esotericsoftware modules"
|
|
|
|
+if rm -rf node_modules/@esotericsoftware 2>/dev/null; then
|
|
|
|
+ log_ok "Cleaned @esotericsoftware modules"
|
|
|
|
+else
|
|
|
|
+ log_warn "@esotericsoftware modules not found or already removed"
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+log_section "Installing Dependencies"
|
|
|
|
+log_action "Installing workspace dependencies"
|
|
|
|
+if output=$(npm install --workspaces 2>&1); then
|
|
|
|
+ log_ok "Dependencies installed successfully"
|
|
|
|
+else
|
|
|
|
+ log_fail "Failed to install dependencies"
|
|
|
|
+ log_detail "$output"
|
|
|
|
+ exit 1
|
|
|
|
+fi
|
|
|
|
+
|
|
|
|
+log_section "Publishing to NPM"
|
|
|
|
+log_action "Publishing all workspaces"
|
|
|
|
+if output=$(npm publish --access public --workspaces 2>&1); then
|
|
|
|
+ log_ok "Successfully published all packages to NPM"
|
|
|
|
+ log_summary "TypeScript packages published successfully with version $newVersion"
|
|
|
|
+else
|
|
|
|
+ log_fail "Failed to publish packages"
|
|
|
|
+ log_detail "$output"
|
|
|
|
+ exit 1
|
|
|
|
+fi
|