80 lines
2.2 KiB
Bash
Executable file
80 lines
2.2 KiB
Bash
Executable file
#!/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:"
|
|
|