+67
-8
scripts/publish-all.sh
+67
-8
scripts/publish-all.sh
···
1
#!/bin/bash
2
set -e
3
4
-
# Usage: ./scripts/publish-all.sh <version>
5
# Example: ./scripts/publish-all.sh 0.4.0
6
7
if [ -z "$1" ]; then
8
echo "Error: Version argument required"
9
-
echo "Usage: ./scripts/publish-all.sh <version>"
10
echo "Example: ./scripts/publish-all.sh 0.4.0"
11
exit 1
12
fi
13
14
VERSION="$1"
15
16
# Validate version format (basic semver check)
17
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then
···
101
echo "✅ All versions updated to $VERSION"
102
echo ""
103
104
echo ""
105
-
echo "✅ Dry run complete! Version updates have been applied."
106
echo ""
107
-
echo "📋 Updated packages:"
108
for pkg in "${PACKAGES[@]}"; do
109
PKG_NAME=$(node -p "require('./$pkg').name")
110
-
echo " - $PKG_NAME@$VERSION"
111
done
112
echo ""
113
-
echo "💡 Review the changes, then run with actual publishing enabled."
114
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"
···
1
#!/bin/bash
2
set -e
3
4
+
# Usage: ./scripts/publish-all.sh <version> [--dry]
5
# Example: ./scripts/publish-all.sh 0.4.0
6
+
# Example: ./scripts/publish-all.sh 0.4.0 --dry
7
8
if [ -z "$1" ]; then
9
echo "Error: Version argument required"
10
+
echo "Usage: ./scripts/publish-all.sh <version> [--dry]"
11
echo "Example: ./scripts/publish-all.sh 0.4.0"
12
+
echo "Example: ./scripts/publish-all.sh 0.4.0 --dry"
13
exit 1
14
fi
15
16
VERSION="$1"
17
+
DRY_RUN=false
18
+
19
+
if [ "$2" = "--dry" ]; then
20
+
DRY_RUN=true
21
+
fi
22
23
# Validate version format (basic semver check)
24
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z0-9.]+)?$ ]]; then
···
108
echo "✅ All versions updated to $VERSION"
109
echo ""
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
+
132
echo ""
133
+
echo "📤 Publishing packages..."
134
echo ""
135
+
136
+
# Publish each package
137
+
PUBLISHED=()
138
+
FAILED=()
139
+
140
for pkg in "${PACKAGES[@]}"; do
141
+
PKG_DIR=$(dirname "$pkg")
142
PKG_NAME=$(node -p "require('./$pkg').name")
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 ""
155
done
156
+
157
+
# Summary
158
+
echo "📊 Summary:"
159
echo ""
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
+
174
echo ""
175
+
echo "🎉 All packages published successfully!"