An experimental TypeSpec syntax for Lexicon

publish script

Changed files
+67 -8
scripts
+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!"