#!/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. | |
# | |
POM_FILES=$(git ls-files | grep pom.xml) | |
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 -- $POM_FILES | |
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 -e ' | |
if ($ARGV ne $old_argv) { | |
$seen_version = 0; | |
$old_argv = $ARGV; | |
} | |
if (!$seen_version) { | |
$seen_version = 1 if | |
s{(<version>).*(</version>)}{${1}'"$V"'${2}}; | |
} | |
' $POM_FILES |