+67
-8
scripts/publish-all.sh
+67
-8
scripts/publish-all.sh
···
1
1
#!/bin/bash
2
2
set -e
3
3
4
-
# Usage: ./scripts/publish-all.sh <version>
4
+
# Usage: ./scripts/publish-all.sh <version> [--dry]
5
5
# Example: ./scripts/publish-all.sh 0.4.0
6
+
# Example: ./scripts/publish-all.sh 0.4.0 --dry
6
7
7
8
if [ -z "$1" ]; then
8
9
echo "Error: Version argument required"
9
-
echo "Usage: ./scripts/publish-all.sh <version>"
10
+
echo "Usage: ./scripts/publish-all.sh <version> [--dry]"
10
11
echo "Example: ./scripts/publish-all.sh 0.4.0"
12
+
echo "Example: ./scripts/publish-all.sh 0.4.0 --dry"
11
13
exit 1
12
14
fi
13
15
14
16
VERSION="$1"
17
+
DRY_RUN=false
18
+
19
+
if [ "$2" = "--dry" ]; then
20
+
DRY_RUN=true
21
+
fi
15
22
16
23
# Validate version format (basic semver check)
17
24
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then
···
101
108
echo "✅ All versions updated to $VERSION"
102
109
echo ""
103
110
111
+
if [ "$DRY_RUN" = true ]; then
112
+
echo "✅ Dry run complete! Version updates have been applied."
113
+
echo ""
114
+
echo "📋 Updated packages:"
115
+
for pkg in "${PACKAGES[@]}"; do
116
+
PKG_NAME=$(node -p "require('./$pkg').name")
117
+
echo " - $PKG_NAME@$VERSION"
118
+
done
119
+
echo ""
120
+
echo "💡 Review the changes, then run without --dry to publish."
121
+
exit 0
122
+
fi
123
+
124
+
# Ask for confirmation
125
+
read -p "🚀 Ready to publish all packages to npm. Continue? (y/N) " -n 1 -r
126
+
echo
127
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
128
+
echo "❌ Publish cancelled"
129
+
exit 1
130
+
fi
131
+
104
132
echo ""
105
-
echo "✅ Dry run complete! Version updates have been applied."
133
+
echo "📤 Publishing packages..."
106
134
echo ""
107
-
echo "📋 Updated packages:"
135
+
136
+
# Publish each package
137
+
PUBLISHED=()
138
+
FAILED=()
139
+
108
140
for pkg in "${PACKAGES[@]}"; do
141
+
PKG_DIR=$(dirname "$pkg")
109
142
PKG_NAME=$(node -p "require('./$pkg').name")
110
-
echo " - $PKG_NAME@$VERSION"
143
+
144
+
echo "Publishing $PKG_NAME..."
145
+
146
+
if (cd "$PKG_DIR" && npm publish --access public); then
147
+
echo " ✅ $PKG_NAME published successfully"
148
+
PUBLISHED+=("$PKG_NAME")
149
+
else
150
+
echo " ❌ $PKG_NAME failed to publish"
151
+
FAILED+=("$PKG_NAME")
152
+
fi
153
+
154
+
echo ""
111
155
done
156
+
157
+
# Summary
158
+
echo "📊 Summary:"
112
159
echo ""
113
-
echo "💡 Review the changes, then run with actual publishing enabled."
160
+
echo "Published (${#PUBLISHED[@]}):"
161
+
for pkg in "${PUBLISHED[@]}"; do
162
+
echo " ✅ $pkg"
163
+
done
164
+
165
+
if [ ${#FAILED[@]} -gt 0 ]; then
166
+
echo ""
167
+
echo "Failed (${#FAILED[@]}):"
168
+
for pkg in "${FAILED[@]}"; do
169
+
echo " ❌ $pkg"
170
+
done
171
+
exit 1
172
+
fi
173
+
114
174
echo ""
115
-
echo "🚨 Publishing is currently disabled (dry-run mode)"
116
-
echo " To enable publishing, edit scripts/publish-all.sh and uncomment the publish section"
175
+
echo "🎉 All packages published successfully!"