xref: /aosp_15_r20/external/error_prone/update.sh (revision b74d98a7c41acf48a623a553cea15f54b99b91e1)
1*b74d98a7SAndroid Build Coastguard Worker#!/bin/bash
2*b74d98a7SAndroid Build Coastguard Worker# Force stop on first error.
3*b74d98a7SAndroid Build Coastguard Workerset -e
4*b74d98a7SAndroid Build Coastguard Workerif [ $# -ne 2 -a $# -ne 3 ]; then
5*b74d98a7SAndroid Build Coastguard Worker    echo "$0 <error prone version> [checkerframework version]" >&2
6*b74d98a7SAndroid Build Coastguard Worker    exit 1;
7*b74d98a7SAndroid Build Coastguard Workerfi
8*b74d98a7SAndroid Build Coastguard Workerif [ -z "$ANDROID_BUILD_TOP" ]; then
9*b74d98a7SAndroid Build Coastguard Worker    echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2
10*b74d98a7SAndroid Build Coastguard Worker    exit 1
11*b74d98a7SAndroid Build Coastguard Workerfi
12*b74d98a7SAndroid Build Coastguard WorkerEP_VERSION="$1"
13*b74d98a7SAndroid Build Coastguard Worker# checkerframework
14*b74d98a7SAndroid Build Coastguard WorkerCF_VERSION="$2"
15*b74d98a7SAndroid Build Coastguard WorkerJAR_REPO="https://oss.sonatype.org/service/local/repositories/releases/content/com/google/errorprone"
16*b74d98a7SAndroid Build Coastguard WorkerEP_JAR_URL="${JAR_REPO}/error_prone_core/${EP_VERSION}/error_prone_core-${EP_VERSION}-with-dependencies.jar"
17*b74d98a7SAndroid Build Coastguard WorkerEP_ANNO_JAR_URL="${JAR_REPO}/error_prone_annotations/${EP_VERSION}/error_prone_annotations-${EP_VERSION}.jar"
18*b74d98a7SAndroid Build Coastguard WorkerEP_TYPE_ANNO_JAR_URL="${JAR_REPO}/error_prone_type_annotations/${EP_VERSION}/error_prone_type_annotations-${EP_VERSION}.jar"
19*b74d98a7SAndroid Build Coastguard WorkerEP_TEST_HELPERS_JAR_URL="${JAR_REPO}/error_prone_test_helpers/${EP_VERSION}/error_prone_test_helpers-${EP_VERSION}.jar"
20*b74d98a7SAndroid Build Coastguard WorkerCF_DATAFLOW_JAR_URL="https://repo1.maven.org/maven2/org/checkerframework/dataflow-errorprone/${CF_VERSION}/dataflow-errorprone-${CF_VERSION}.jar"
21*b74d98a7SAndroid Build Coastguard WorkerCF_DATAFLOW_SOURCES_JAR_URL="https://repo1.maven.org/maven2/org/checkerframework/dataflow-errorprone/${CF_VERSION}/dataflow-errorprone-${CF_VERSION}-sources.jar"
22*b74d98a7SAndroid Build Coastguard WorkerTOOLS_DIR=$(dirname $0)
23*b74d98a7SAndroid Build Coastguard Worker
24*b74d98a7SAndroid Build Coastguard Workerfunction update_jar {
25*b74d98a7SAndroid Build Coastguard Worker    typeset VERSION="$1" JAR_URL="$2" DIR="$3" JAR_FILE="$4"
26*b74d98a7SAndroid Build Coastguard Worker    typeset JAR_URL_PREFIX=$(dirname $(dirname ${JAR_URL}))
27*b74d98a7SAndroid Build Coastguard Worker
28*b74d98a7SAndroid Build Coastguard Worker    # Update the version and binary JAR URL.
29*b74d98a7SAndroid Build Coastguard Worker    perl -pi -e "s|version: .*|version: \"${VERSION}\"|; s|\"${JAR_URL_PREFIX}.*\"|\"${JAR_URL}\"|" "$DIR/METADATA"
30*b74d98a7SAndroid Build Coastguard Worker
31*b74d98a7SAndroid Build Coastguard Worker    # Update the last upgrade date
32*b74d98a7SAndroid Build Coastguard Worker    perl -pi -e "s|last_upgrade_date.*|last_upgrade_date { year: $(date +%Y) month: $(date +%-m) day: $(date +%-d)}|" "$DIR/METADATA"
33*b74d98a7SAndroid Build Coastguard Worker
34*b74d98a7SAndroid Build Coastguard Worker    # Get the JAR.
35*b74d98a7SAndroid Build Coastguard Worker    wget ${JAR_URL} -O ${DIR}/$(basename ${JAR_URL})
36*b74d98a7SAndroid Build Coastguard Worker    wget ${JAR_URL}.sha1 -O ${DIR}/$(basename ${JAR_URL}).sha1
37*b74d98a7SAndroid Build Coastguard Worker    wget ${JAR_URL}.asc -O ${DIR}/$(basename ${JAR_URL}).asc
38*b74d98a7SAndroid Build Coastguard Worker}
39*b74d98a7SAndroid Build Coastguard Worker
40*b74d98a7SAndroid Build Coastguard Workerrm -f error_prone/*.jar*
41*b74d98a7SAndroid Build Coastguard Worker
42*b74d98a7SAndroid Build Coastguard Workerupdate_jar "${EP_VERSION}" "${EP_JAR_URL}" "${TOOLS_DIR}/error_prone"
43*b74d98a7SAndroid Build Coastguard Workerupdate_jar "${EP_VERSION}" "${EP_ANNO_JAR_URL}" "${TOOLS_DIR}/error_prone"
44*b74d98a7SAndroid Build Coastguard Workerupdate_jar "${EP_VERSION}" "${EP_TYPE_ANNO_JAR_URL}" "${TOOLS_DIR}/error_prone"
45*b74d98a7SAndroid Build Coastguard Workerupdate_jar "${EP_VERSION}" "${EP_TEST_HELPERS_JAR_URL}" "${TOOLS_DIR}/error_prone"
46*b74d98a7SAndroid Build Coastguard Worker
47*b74d98a7SAndroid Build Coastguard Worker# Update the versions in the build file
48*b74d98a7SAndroid Build Coastguard Workerperl -pi -e "\
49*b74d98a7SAndroid Build Coastguard Worker    s|\"(error_prone/error_prone_core).*\"|\"\\1-${EP_VERSION}-with-dependencies.jar\"|;\
50*b74d98a7SAndroid Build Coastguard Worker    s|\"(error_prone/error_prone_annotations).*\"|\"\\1-${EP_VERSION}.jar\"|;\
51*b74d98a7SAndroid Build Coastguard Worker    s|\"(error_prone/error_prone_type_annotations).*\"|\"\\1-${EP_VERSION}.jar\"|;\
52*b74d98a7SAndroid Build Coastguard Worker    s|\"(error_prone/error_prone_test_helpers).*\"|\"\\1-${EP_VERSION}.jar\"|;\
53*b74d98a7SAndroid Build Coastguard Worker" "$TOOLS_DIR/Android.bp"
54*b74d98a7SAndroid Build Coastguard Worker
55*b74d98a7SAndroid Build Coastguard Worker# Update the versions for soong
56*b74d98a7SAndroid Build Coastguard Workerperl -pi -e "\
57*b74d98a7SAndroid Build Coastguard Worker    s|\"(external/error_prone/error_prone/error_prone_core).*\"|\"\\1-${EP_VERSION}-with-dependencies.jar\"|;\
58*b74d98a7SAndroid Build Coastguard Worker    s|\"(external/error_prone/error_prone/error_prone_annotations).*\"|\"\\1-${EP_VERSION}.jar\"|;\
59*b74d98a7SAndroid Build Coastguard Worker    s|\"(external/error_prone/error_prone/error_prone_type_annotations).*\"|\"\\1-${EP_VERSION}.jar\"|;\
60*b74d98a7SAndroid Build Coastguard Worker    s|\"(external/error_prone/error_prone/error_prone_test_helpers).*\"|\"\\1-${EP_VERSION}.jar\"|;\
61*b74d98a7SAndroid Build Coastguard Worker" "$TOOLS_DIR/soong/error_prone.go"
62*b74d98a7SAndroid Build Coastguard Worker
63*b74d98a7SAndroid Build Coastguard Workerif [ "${CF_VERSION}" != '' ]; then
64*b74d98a7SAndroid Build Coastguard Worker  rm -f checkerframework/*.jar*
65*b74d98a7SAndroid Build Coastguard Worker  update_jar "${CF_VERSION}" "${CF_DATAFLOW_JAR_URL}" "${TOOLS_DIR}/checkerframework"
66*b74d98a7SAndroid Build Coastguard Worker  update_jar "${CF_VERSION}" "${CF_DATAFLOW_SOURCES_JAR_URL}" "${TOOLS_DIR}/checkerframework"
67*b74d98a7SAndroid Build Coastguard Worker  perl -pi -e "\
68*b74d98a7SAndroid Build Coastguard Worker    s|\"(external/error_prone/checkerframework/dataflow-errorprone).*\"|\"\\1-${CF_VERSION}.jar\"|;\
69*b74d98a7SAndroid Build Coastguard Worker  " "$TOOLS_DIR/soong/error_prone.go"
70*b74d98a7SAndroid Build Coastguard Worker  perl -pi -e "s|\"(dataflow-errorprone).*\"|\"\\1-${CF_VERSION}.jar\"|;" "${TOOLS_DIR}/checkerframework/Android.bp"
71*b74d98a7SAndroid Build Coastguard Workerfi
72