aboutsummaryrefslogtreecommitdiff
path: root/eclipse/scripts/update_version.sh
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/scripts/update_version.sh')
-rwxr-xr-xeclipse/scripts/update_version.sh80
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:"
+