|
3 | 3 | # Update version across POMs and JBang scripts |
4 | 4 | # Usage: ./update-version.sh FROM_VERSION TO_VERSION [--dry-run] |
5 | 5 |
|
6 | | -set -e # Exit on error |
| 6 | +set -euo pipefail # Exit on error, unset var, and pipe failure |
7 | 7 |
|
8 | 8 | FROM_VERSION=$1 |
9 | 9 | TO_VERSION=$2 |
10 | | -DRY_RUN=false |
11 | | - |
12 | | -# Check for dry-run flag |
13 | | -if [ "$3" = "--dry-run" ] || [ "$2" = "--dry-run" ]; then |
14 | | - DRY_RUN=true |
15 | | -fi |
16 | 10 |
|
17 | 11 | # Validate arguments |
18 | | -if [ -z "$FROM_VERSION" ]; then |
19 | | - echo "❌ Error: No from version specified" |
| 12 | +if [ -z "$FROM_VERSION" ] || [ -z "$TO_VERSION" ]; then |
| 13 | + echo "❌ Error: Missing version arguments." |
20 | 14 | echo "Usage: $0 FROM_VERSION TO_VERSION [--dry-run]" |
21 | 15 | echo "Example: $0 0.3.0.Beta1-SNAPSHOT 0.3.0.Beta1" |
22 | 16 | exit 1 |
23 | 17 | fi |
24 | 18 |
|
25 | | -if [ -z "$TO_VERSION" ] && [ "$FROM_VERSION" != "--dry-run" ]; then |
26 | | - echo "❌ Error: No to version specified" |
| 19 | +# Check if TO_VERSION looks like a flag |
| 20 | +if [[ "$TO_VERSION" == --* ]]; then |
| 21 | + echo "❌ Error: TO_VERSION cannot be a flag. Did you mean to provide both FROM_VERSION and TO_VERSION?" |
27 | 22 | echo "Usage: $0 FROM_VERSION TO_VERSION [--dry-run]" |
28 | 23 | echo "Example: $0 0.3.0.Beta1-SNAPSHOT 0.3.0.Beta1" |
29 | 24 | exit 1 |
30 | 25 | fi |
31 | 26 |
|
| 27 | +DRY_RUN=false |
| 28 | +if [ "$3" = "--dry-run" ]; then |
| 29 | + DRY_RUN=true |
| 30 | +elif [ -n "$3" ]; then |
| 31 | + echo "❌ Error: Invalid third argument. Only '--dry-run' is supported." |
| 32 | + echo "Usage: $0 FROM_VERSION TO_VERSION [--dry-run]" |
| 33 | + exit 1 |
| 34 | +fi |
| 35 | + |
32 | 36 | # Verify we're in the right directory |
33 | 37 | if [ ! -f "pom.xml" ]; then |
34 | 38 | echo "❌ Error: pom.xml not found. Run this script from the a2a-java root directory." |
@@ -89,10 +93,10 @@ for file in $POM_FILES; do |
89 | 93 | if grep -q "$FROM_VERSION" "$file"; then |
90 | 94 | if [[ "$OSTYPE" == "darwin"* ]]; then |
91 | 95 | # macOS requires empty string after -i |
92 | | - sed -i "" -e "s/$FROM_VERSION/$TO_VERSION/g" "$file" |
| 96 | + sed -i "" -e "s|>$FROM_VERSION<|>$TO_VERSION<|g" "$file" |
93 | 97 | else |
94 | 98 | # Linux doesn't need it |
95 | | - sed -i "s/$FROM_VERSION/$TO_VERSION/g" "$file" |
| 99 | + sed -i "s|>$FROM_VERSION<|>$TO_VERSION<|g" "$file" |
96 | 100 | fi |
97 | 101 | echo " ✅ $file" |
98 | 102 | UPDATED_POMS=$((UPDATED_POMS + 1)) |
|
0 commit comments