diff options
Diffstat (limited to 'eclipse/scripts/update_version.sh')
-rwxr-xr-x | eclipse/scripts/update_version.sh | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/eclipse/scripts/update_version.sh b/eclipse/scripts/update_version.sh new file mode 100755 index 000000000..228be97a9 --- /dev/null +++ b/eclipse/scripts/update_version.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +OLD="$1" +NEW="$2" + +# sanity check in input args +if [ -z "$OLD" ] || [ -z "$NEW" ]; then + cat <<EOF +Usage: $0 <old> <new> +Changes the ADT plugin revision number. +Example: + cd sdk/eclipse + scripts/update_version.sh 0.1.2 0.2.3 +EOF + exit 1 +fi + +# sanity check on current dir +if [ `basename "$PWD"` != "eclipse" ]; then + echo "Please run this from sdk/eclipse." + exit 1 +fi + +# sanity check the new version number +if [[ "$NEW" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "## Version $NEW: seems valid." +else + echo "## Version $NEW: does not conform to major.mino.micro format." + exit 1 +fi + +function replace() { + if [[ -f "$1" ]]; then + echo "### Change $SED_OLD => $SED_NEW in $1" + if [[ $(uname) == "Linux" ]]; then + sed -i "s/$SED_OLD/$SED_NEW/g" "$1" + else + # sed on Mac doesn't handle -i the same way as on Linux + sed -i "" "s/$SED_OLD/$SED_NEW/g" "$1" + fi + fi +} + +# ---1--- Change Eclipse's qualified version numbers +# quote dots for regexps +SED_OLD="${OLD//./\.}\.qualifier" +SED_NEW="${NEW//./\.}\.qualifier" + +for i in $(grep -rl "$OLD" * | grep -E "\.xml$|\.MF$|\.product$"); do + if [[ -f "$i" && $(basename "$i") != "build.xml" ]]; then + replace "$i" + fi +done + +# ---2--- Change unqualified version numbers in specific files +SED_OLD="${OLD//./\.}" +SED_NEW="${NEW//./\.}" +for i in artifacts/*/pom.xml \ + monitor/build.gradle \ + plugins/com.android.ide.eclipse.adt.package/ide.product \ + plugins/com.android.ide.eclipse.monitor/monitor.product \ + plugins/com.android.ide.eclipse.monitor/plugin.properties \ + plugins/com.android.ide.eclipse.*/pom.xml \ + features/com.android.ide.eclipse.*/pom.xml \ + features/com.android.ide.eclipse.adt.package/feature.xml ; do + if grep -qs "$OLD" "$i"; then + replace "$i" + fi +done + +# do another grep for older version without the qualifier. We don't +# want to replace those automatically as it could be something else. +# Printing out occurence helps find ones to update manually, but exclude +# some known useless files. +echo +echo "#### ----------------" +echo "#### Remaining instances of $OLD" +echo +grep -r "$OLD" * | grep -v -E "/build.xml:|/javaCompiler\.\.\.args:" + |