22
33set -euo pipefail
44
5- if [ $# -ne 2 ]; then
6- echo " Usage: $0 <api|verifier> < version> "
5+ if [ $# -lt 1 ] || [ $# -gt 2 ]; then
6+ echo " Usage: $0 <api|verifier> [ version] "
77 exit 1
88fi
99
1010MODULE=$1
11- VERSION=$2
11+ VERSION=${2 :- }
1212
1313if [ " $MODULE " != " api" ] && [ " $MODULE " != " verifier" ]; then
1414 echo " Invalid module: $MODULE "
15- echo " Usage: $0 <api|verifier> < version> "
15+ echo " Usage: $0 <api|verifier> [ version] "
1616 exit 1
1717fi
1818
19+ MODULE_DIR=" liquidjava-$MODULE "
20+ POM=" $MODULE_DIR /pom.xml"
21+
22+ if [ -z " $VERSION " ]; then
23+ CURRENT_VERSION=$( perl -0ne " print \$ 1 if m#<artifactId>\\ Q$MODULE_DIR \\ E</artifactId>\\ s*<version>([^<]+)</version>#" " $POM " )
24+
25+ if [ -z " $CURRENT_VERSION " ]; then
26+ echo " Could not read current version from $POM "
27+ exit 1
28+ fi
29+
30+ if ! [[ " $CURRENT_VERSION " =~ ^[0-9]+ (\. [0-9]+){1,2}$ ]]; then
31+ echo " Cannot automatically bump non-numeric version: $CURRENT_VERSION "
32+ echo " Pass the release version explicitly."
33+ exit 1
34+ fi
35+
36+ IFS=. read -ra VERSION_PARTS <<< " $CURRENT_VERSION"
37+ LAST_INDEX=$(( ${# VERSION_PARTS[@]} - 1 ))
38+ VERSION_PARTS[$LAST_INDEX ]=$(( ${VERSION_PARTS[$LAST_INDEX]} + 1 ))
39+ VERSION=$( IFS=.; echo " ${VERSION_PARTS[*]} " )
40+
41+ echo " Bumping $MODULE_DIR from $CURRENT_VERSION to $VERSION "
42+ fi
43+
1944if ! [[ " $VERSION " =~ ^[0-9]+ (\. [0-9]+){1,2}(-[A-Za-z0-9.-]+)? $ ]]; then
2045 echo " Invalid version: $VERSION "
2146 echo " Expected format: 1.2.3"
2247 exit 1
2348fi
2449
25- MODULE_DIR=" liquidjava-$MODULE "
26- POM=" $MODULE_DIR /pom.xml"
27-
2850if [ " $MODULE " = " api" ]; then
2951 TAG=" api-v$VERSION "
3052else
@@ -48,15 +70,15 @@ if git rev-parse "$TAG" >/dev/null 2>&1; then
4870 exit 1
4971fi
5072
73+ ./mvnw -f " $POM " -B --fail-fast -Dgpg.skip=true -Dmaven.deploy.skip=true clean verify
74+
5175perl -0pi -e " s#(<artifactId>$MODULE_DIR </artifactId>\\ s*<version>)[^<]+(</version>)#\$ {1}$VERSION \$ {2}#" " $POM "
5276
5377if git diff --quiet -- " $POM " ; then
5478 echo " $POM is already at version $VERSION "
5579 exit 1
5680fi
5781
58- ./mvnw -f " $POM " -B --fail-fast -Dgpg.skip=true -Dmaven.deploy.skip=true clean verify
59-
6082git add " $POM "
6183git commit -m " Release $MODULE_DIR $VERSION "
6284git tag " $TAG "
0 commit comments