#!/bin/sh # Update all pom.xml with new build number # # TODO(sop) This should be converted to some sort of # Java based Maven plugin so its fully portable. # SERVER_POMS=$(git ls-files | grep pom.xml | grep -v /src/main/resources/archetype-resources/pom.xml) POM_FILES=$SERVER_POMS # CORE PLUGIN LIST PLUGINS="commit-message-length-validator replication reviewnotes" for p in $PLUGINS do POM_FILES="$POM_FILES $(cd plugins/$p && git ls-files | grep pom.xml | sed s,^,plugins/$p/,)" done case "$1" in --snapshot=*) V=$(echo "$1" | perl -pe 's/^--snapshot=//') if [ -z "$V" ] then echo >&2 "usage: $0 --snapshot=0.n.0" exit 1 fi case "$V" in *-SNAPSHOT) : ;; *) V=$V-SNAPSHOT ;; esac ;; --release) V=$(git describe HEAD) || exit ;; --reset) git checkout HEAD -- $SERVER_POMS for p in $PLUGINS do (cd plugins/$p; git checkout $(git ls-files | grep pom.xml)) done exit $? ;; *) echo >&2 "usage: $0 {--snapshot=2.n | --release}" exit 1 esac case "$V" in v*) V=$(echo "$V" | perl -pe s/^v//) ;; esac perl -pi.bak -e ' if ($ARGV ne $old_argv) { $seen_version = 0; $old_argv = $ARGV; } if (!$seen_version) { $seen_version = 1 if s{().*()}{${1}'"$V"'${2}}; } ' $POM_FILES for pom in $POM_FILES do rm -f ${pom}.bak done