tangled
alpha
login
or
join now
maxine.puppykitty.racing
/
typelex
forked from
danabra.mov/typelex
0
fork
atom
An experimental TypeSpec syntax for Lexicon
0
fork
atom
overview
issues
pulls
pipelines
publish script
danabra.mov
5 months ago
7c4d8d76
e45d44af
+67
-8
1 changed file
expand all
collapse all
unified
split
scripts
publish-all.sh
+67
-8
scripts/publish-all.sh
···
1
1
#!/bin/bash
2
2
set -e
3
3
4
4
-
# Usage: ./scripts/publish-all.sh <version>
4
4
+
# Usage: ./scripts/publish-all.sh <version> [--dry]
5
5
# Example: ./scripts/publish-all.sh 0.4.0
6
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
9
-
echo "Usage: ./scripts/publish-all.sh <version>"
10
10
+
echo "Usage: ./scripts/publish-all.sh <version> [--dry]"
10
11
echo "Example: ./scripts/publish-all.sh 0.4.0"
12
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
17
+
DRY_RUN=false
18
18
+
19
19
+
if [ "$2" = "--dry" ]; then
20
20
+
DRY_RUN=true
21
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
111
+
if [ "$DRY_RUN" = true ]; then
112
112
+
echo "โ Dry run complete! Version updates have been applied."
113
113
+
echo ""
114
114
+
echo "๐ Updated packages:"
115
115
+
for pkg in "${PACKAGES[@]}"; do
116
116
+
PKG_NAME=$(node -p "require('./$pkg').name")
117
117
+
echo " - $PKG_NAME@$VERSION"
118
118
+
done
119
119
+
echo ""
120
120
+
echo "๐ก Review the changes, then run without --dry to publish."
121
121
+
exit 0
122
122
+
fi
123
123
+
124
124
+
# Ask for confirmation
125
125
+
read -p "๐ Ready to publish all packages to npm. Continue? (y/N) " -n 1 -r
126
126
+
echo
127
127
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
128
128
+
echo "โ Publish cancelled"
129
129
+
exit 1
130
130
+
fi
131
131
+
104
132
echo ""
105
105
-
echo "โ Dry run complete! Version updates have been applied."
133
133
+
echo "๐ค Publishing packages..."
106
134
echo ""
107
107
-
echo "๐ Updated packages:"
135
135
+
136
136
+
# Publish each package
137
137
+
PUBLISHED=()
138
138
+
FAILED=()
139
139
+
108
140
for pkg in "${PACKAGES[@]}"; do
141
141
+
PKG_DIR=$(dirname "$pkg")
109
142
PKG_NAME=$(node -p "require('./$pkg').name")
110
110
-
echo " - $PKG_NAME@$VERSION"
143
143
+
144
144
+
echo "Publishing $PKG_NAME..."
145
145
+
146
146
+
if (cd "$PKG_DIR" && npm publish --access public); then
147
147
+
echo " โ $PKG_NAME published successfully"
148
148
+
PUBLISHED+=("$PKG_NAME")
149
149
+
else
150
150
+
echo " โ $PKG_NAME failed to publish"
151
151
+
FAILED+=("$PKG_NAME")
152
152
+
fi
153
153
+
154
154
+
echo ""
111
155
done
156
156
+
157
157
+
# Summary
158
158
+
echo "๐ Summary:"
112
159
echo ""
113
113
-
echo "๐ก Review the changes, then run with actual publishing enabled."
160
160
+
echo "Published (${#PUBLISHED[@]}):"
161
161
+
for pkg in "${PUBLISHED[@]}"; do
162
162
+
echo " โ $pkg"
163
163
+
done
164
164
+
165
165
+
if [ ${#FAILED[@]} -gt 0 ]; then
166
166
+
echo ""
167
167
+
echo "Failed (${#FAILED[@]}):"
168
168
+
for pkg in "${FAILED[@]}"; do
169
169
+
echo " โ $pkg"
170
170
+
done
171
171
+
exit 1
172
172
+
fi
173
173
+
114
174
echo ""
115
115
-
echo "๐จ Publishing is currently disabled (dry-run mode)"
116
116
-
echo " To enable publishing, edit scripts/publish-all.sh and uncomment the publish section"
175
175
+
echo "๐ All packages published successfully!"