Colin Cross | 416b18d | 2017-09-05 14:57:41 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # Force stop on first error. |
| 3 | set -e |
Andreas Gampe | 37992b5 | 2018-01-16 22:41:50 -0800 | [diff] [blame] | 4 | if [ $# -ne 2 -a $# -ne 3 ]; then |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 5 | echo "$0 <error prone version> <error prone javac version> [checkerframework version]" >&2 |
Colin Cross | 416b18d | 2017-09-05 14:57:41 -0700 | [diff] [blame] | 6 | exit 1; |
| 7 | fi |
| 8 | if [ -z "$ANDROID_BUILD_TOP" ]; then |
| 9 | echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2 |
| 10 | exit 1 |
| 11 | fi |
| 12 | EP_VERSION="$1" |
| 13 | JAVAC_VERSION="$2" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 14 | # checkerframework |
| 15 | CF_VERSION="$3" |
Colin Cross | 416b18d | 2017-09-05 14:57:41 -0700 | [diff] [blame] | 16 | JAR_REPO="https://oss.sonatype.org/service/local/repositories/releases/content/com/google/errorprone" |
| 17 | EP_JAR_URL="${JAR_REPO}/error_prone_core/${EP_VERSION}/error_prone_core-${EP_VERSION}-with-dependencies.jar" |
| 18 | EP_ANNO_JAR_URL="${JAR_REPO}/error_prone_annotations/${EP_VERSION}/error_prone_annotations-${EP_VERSION}.jar" |
| 19 | JAVAC_JAR_URL="${JAR_REPO}/javac/${JAVAC_VERSION}/javac-${JAVAC_VERSION}.jar" |
| 20 | JAVAC_SOURCES_JAR_URL="${JAR_REPO}/javac/${JAVAC_VERSION}/javac-${JAVAC_VERSION}-sources.jar" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 21 | CF_DATAFLOW_JAR_URL="http://repo1.maven.org/maven2/org/checkerframework/dataflow/${CF_VERSION}/dataflow-${CF_VERSION}.jar" |
Tobias Thierer | 7a26c92 | 2017-11-30 21:23:09 +0000 | [diff] [blame] | 22 | CF_DATAFLOW_SOURCES_JAR_URL="http://repo1.maven.org/maven2/org/checkerframework/dataflow/${CF_VERSION}/dataflow-${CF_VERSION}-sources.jar" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 23 | CF_JAVACUTIL_JAR_URL="http://repo1.maven.org/maven2/org/checkerframework/javacutil/${CF_VERSION}/javacutil-${CF_VERSION}.jar" |
Tobias Thierer | 7a26c92 | 2017-11-30 21:23:09 +0000 | [diff] [blame] | 24 | CF_JAVACUTIL_SOURCES_JAR_URL="http://repo1.maven.org/maven2/org/checkerframework/javacutil/${CF_VERSION}/javacutil-${CF_VERSION}-sources.jar" |
Colin Cross | 416b18d | 2017-09-05 14:57:41 -0700 | [diff] [blame] | 25 | TOOLS_DIR=$(dirname $0) |
| 26 | |
| 27 | function update_jar { |
| 28 | typeset VERSION="$1" JAR_URL="$2" DIR="$3" JAR_FILE="$4" |
| 29 | typeset JAR_URL_PREFIX=$(dirname $(dirname ${JAR_URL})) |
| 30 | |
| 31 | # Update the version and binary JAR URL. |
| 32 | perl -pi -e "s|version: .*|version: \"${VERSION}\"|; s|\"${JAR_URL_PREFIX}.*\"|\"${JAR_URL}\"|" "$DIR/METADATA" |
| 33 | |
| 34 | # Update the last upgrade date |
| 35 | perl -pi -e "s|last_upgrade_date.*|last_upgrade_date { year: $(date +%Y) month: $(date +%-m) day: $(date +%-d)}|" "$DIR/METADATA" |
| 36 | |
| 37 | # Get the JAR. |
| 38 | wget ${JAR_URL} -O ${DIR}/$(basename ${JAR_URL}) |
| 39 | wget ${JAR_URL}.sha1 -O ${DIR}/$(basename ${JAR_URL}).sha1 |
| 40 | wget ${JAR_URL}.asc -O ${DIR}/$(basename ${JAR_URL}).asc |
| 41 | } |
| 42 | |
| 43 | rm -f error_prone/*.jar* |
| 44 | rm -f javac/*.jar* |
| 45 | |
| 46 | update_jar "${EP_VERSION}" "${EP_JAR_URL}" "${TOOLS_DIR}/error_prone" |
| 47 | update_jar "${EP_VERSION}" "${EP_ANNO_JAR_URL}" "${TOOLS_DIR}/error_prone" |
| 48 | update_jar "${JAVAC_VERSION}" "${JAVAC_SOURCES_JAR_URL}" "${TOOLS_DIR}/javac" |
| 49 | update_jar "${JAVAC_VERSION}" "${JAVAC_JAR_URL}" "${TOOLS_DIR}/javac" |
| 50 | |
| 51 | # Update the versions for soong |
| 52 | perl -pi -e "\ |
| 53 | s|\"(external/error_prone/javac/javac).*\"|\"\\1-${JAVAC_VERSION}.jar\"|;\ |
| 54 | s|\"(external/error_prone/error_prone/error_prone_core).*\"|\"\\1-${EP_VERSION}-with-dependencies.jar\"|;\ |
| 55 | s|\"(external/error_prone/error_prone/error_prone_annotations).*\"|\"\\1-${EP_VERSION}.jar\"|;\ |
| 56 | " "$TOOLS_DIR/soong/error_prone.go" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 57 | |
| 58 | if [ "${CF_VERSION}" != '' ]; then |
Tobias Thierer | 7a26c92 | 2017-11-30 21:23:09 +0000 | [diff] [blame] | 59 | rm -f checkerframework/*.jar* |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 60 | update_jar "${CF_VERSION}" "${CF_DATAFLOW_JAR_URL}" "${TOOLS_DIR}/checkerframework" |
Tobias Thierer | 7a26c92 | 2017-11-30 21:23:09 +0000 | [diff] [blame] | 61 | update_jar "${CF_VERSION}" "${CF_DATAFLOW_SOURCES_JAR_URL}" "${TOOLS_DIR}/checkerframework" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 62 | update_jar "${CF_VERSION}" "${CF_JAVACUTIL_JAR_URL}" "${TOOLS_DIR}/checkerframework" |
Tobias Thierer | 7a26c92 | 2017-11-30 21:23:09 +0000 | [diff] [blame] | 63 | update_jar "${CF_VERSION}" "${CF_JAVACUTIL_SOURCES_JAR_URL}" "${TOOLS_DIR}/checkerframework" |
Tobias Thierer | e6b5905 | 2017-11-30 16:45:26 +0000 | [diff] [blame] | 64 | perl -pi -e "\ |
| 65 | s|\"(external/error_prone/checkerframework/dataflow).*\"|\"\\1-${CF_VERSION}.jar\"|;\ |
| 66 | s|\"(external/error_prone/checkerframework/javacutil).*\"|\"\\1-${CF_VERSION}.jar\"|;\ |
| 67 | " "$TOOLS_DIR/soong/error_prone.go" |
| 68 | fi |