|  | #!/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 |