1*fb0c9d92SAndroid Build Coastguard Worker#!/bin/bash 2*fb0c9d92SAndroid Build Coastguard Worker# Copyright (C) 2019 The Android Open Source Project 3*fb0c9d92SAndroid Build Coastguard Worker# 4*fb0c9d92SAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); 5*fb0c9d92SAndroid Build Coastguard Worker# you may not use this file except in compliance with the License. 6*fb0c9d92SAndroid Build Coastguard Worker# You may obtain a copy of the License at 7*fb0c9d92SAndroid Build Coastguard Worker# 8*fb0c9d92SAndroid Build Coastguard Worker# http://www.apache.org/licenses/LICENSE-2.0 9*fb0c9d92SAndroid Build Coastguard Worker# 10*fb0c9d92SAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software 11*fb0c9d92SAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, 12*fb0c9d92SAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*fb0c9d92SAndroid Build Coastguard Worker# See the License for the specific language governing permissions and 14*fb0c9d92SAndroid Build Coastguard Worker# limitations under the License. 15*fb0c9d92SAndroid Build Coastguard Worker 16*fb0c9d92SAndroid Build Coastguard Worker# Common logic for use by repackaging scripts. 17*fb0c9d92SAndroid Build Coastguard Worker# The following environment variables must be set before including this script: 18*fb0c9d92SAndroid Build Coastguard Worker# 19*fb0c9d92SAndroid Build Coastguard Worker# PROJECT_DIR 20*fb0c9d92SAndroid Build Coastguard Worker# the root directory (relative to ${ANDROID_BUILD_TOP}) of the project within which the 21*fb0c9d92SAndroid Build Coastguard Worker# repackaging is to be done. e.g. external/conscrypt 22*fb0c9d92SAndroid Build Coastguard Worker# 23*fb0c9d92SAndroid Build Coastguard Worker# MODULE_DIRS 24*fb0c9d92SAndroid Build Coastguard Worker# a space separated list of the module directories (relative to the PROJECT_DIR) whose 25*fb0c9d92SAndroid Build Coastguard Worker# sources need repackaging. e.g. core common android 26*fb0c9d92SAndroid Build Coastguard Worker# 27*fb0c9d92SAndroid Build Coastguard Worker# SOURCE_DIRS 28*fb0c9d92SAndroid Build Coastguard Worker# a space separated list of the source directories (relative to the MODULE_DIRS) that are to 29*fb0c9d92SAndroid Build Coastguard Worker# be repackaged. If the ${PROJECT_DIR}/${MODULE_DIR}/${SOURCE_DIR} does not exist then it is 30*fb0c9d92SAndroid Build Coastguard Worker# ignored. e.g. src/main/java src/main/test 31*fb0c9d92SAndroid Build Coastguard Worker# 32*fb0c9d92SAndroid Build Coastguard Worker# PACKAGE_TRANSFORMATIONS 33*fb0c9d92SAndroid Build Coastguard Worker# a space separated list of the package transformations to apply. Must be in the form 34*fb0c9d92SAndroid Build Coastguard Worker# <old package prefix>:<new package prefix>. 35*fb0c9d92SAndroid Build Coastguard Worker# 36*fb0c9d92SAndroid Build Coastguard Worker# UNSUPPORTED_APP_USAGE_CLASS 37*fb0c9d92SAndroid Build Coastguard Worker# the fully qualified path to the UnsupportedAppUsage annotation to insert. 38*fb0c9d92SAndroid Build Coastguard Worker# 39*fb0c9d92SAndroid Build Coastguard Worker# The following environment variables are optional. 40*fb0c9d92SAndroid Build Coastguard Worker# 41*fb0c9d92SAndroid Build Coastguard Worker# TAB_SIZE 42*fb0c9d92SAndroid Build Coastguard Worker# the tab size for formatting any inserted code, e.g. annotations. Defaults to 4. 43*fb0c9d92SAndroid Build Coastguard Worker# 44*fb0c9d92SAndroid Build Coastguard Worker# The following environment variables can be used after including this file: 45*fb0c9d92SAndroid Build Coastguard Worker# REPACKAGED_DIR 46*fb0c9d92SAndroid Build Coastguard Worker# the absolute path to the directory into which the repackaged source has been written. 47*fb0c9d92SAndroid Build Coastguard Worker# 48*fb0c9d92SAndroid Build Coastguard Worker# This should be used as follows: 49*fb0c9d92SAndroid Build Coastguard Worker# 50*fb0c9d92SAndroid Build Coastguard Worker#if [[ -z "${ANDROID_BUILD_TOP}" ]]; then 51*fb0c9d92SAndroid Build Coastguard Worker# echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2 52*fb0c9d92SAndroid Build Coastguard Worker# exit 1 53*fb0c9d92SAndroid Build Coastguard Worker#fi 54*fb0c9d92SAndroid Build Coastguard Worker# 55*fb0c9d92SAndroid Build Coastguard Worker# PROJECT_DIR=... 56*fb0c9d92SAndroid Build Coastguard Worker# MODULE_DIRS=... 57*fb0c9d92SAndroid Build Coastguard Worker# SOURCE_DIRS=... 58*fb0c9d92SAndroid Build Coastguard Worker# PACKAGE_TRANSFORMATIONS=... 59*fb0c9d92SAndroid Build Coastguard Worker# source ${ANDROID_BUILD_TOP}/tools/currysrc/scripts/repackage-common.sh 60*fb0c9d92SAndroid Build Coastguard Worker# ...any post transformation changes, e.g. to remove unnecessary files. 61*fb0c9d92SAndroid Build Coastguard Worker 62*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${ANDROID_BUILD_TOP}" ]]; then 63*fb0c9d92SAndroid Build Coastguard Worker echo "Missing environment variables. Did you run build/envsetup.sh and lunch?" >&2 64*fb0c9d92SAndroid Build Coastguard Worker exit 1 65*fb0c9d92SAndroid Build Coastguard Workerfi 66*fb0c9d92SAndroid Build Coastguard Worker 67*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${PROJECT_DIR}" ]]; then 68*fb0c9d92SAndroid Build Coastguard Worker echo "PROJECT_DIR is not set" >&2 69*fb0c9d92SAndroid Build Coastguard Worker exit 1 70*fb0c9d92SAndroid Build Coastguard Workerfi 71*fb0c9d92SAndroid Build Coastguard Worker 72*fb0c9d92SAndroid Build Coastguard WorkerPROJECT_DIR=${ANDROID_BUILD_TOP}/${PROJECT_DIR} 73*fb0c9d92SAndroid Build Coastguard Worker 74*fb0c9d92SAndroid Build Coastguard Workerif [[ ! -d "${PROJECT_DIR}" ]]; then 75*fb0c9d92SAndroid Build Coastguard Worker echo "${PROJECT_DIR} does not exist" >&2 76*fb0c9d92SAndroid Build Coastguard Worker exit 1 77*fb0c9d92SAndroid Build Coastguard Workerfi 78*fb0c9d92SAndroid Build Coastguard Worker 79*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${MODULE_DIRS}" ]]; then 80*fb0c9d92SAndroid Build Coastguard Worker echo "MODULE_DIRS is not set" >&2 81*fb0c9d92SAndroid Build Coastguard Worker exit 1 82*fb0c9d92SAndroid Build Coastguard Workerfi 83*fb0c9d92SAndroid Build Coastguard Worker 84*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${SOURCE_DIRS}" ]]; then 85*fb0c9d92SAndroid Build Coastguard Worker echo "SOURCE_DIRS is not set" >&2 86*fb0c9d92SAndroid Build Coastguard Worker exit 1 87*fb0c9d92SAndroid Build Coastguard Workerfi 88*fb0c9d92SAndroid Build Coastguard Worker 89*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${PACKAGE_TRANSFORMATIONS}" ]]; then 90*fb0c9d92SAndroid Build Coastguard Worker echo "PACKAGE_TRANSFORMATIONS is not set" >&2 91*fb0c9d92SAndroid Build Coastguard Worker exit 1 92*fb0c9d92SAndroid Build Coastguard Workerfi 93*fb0c9d92SAndroid Build Coastguard Worker 94*fb0c9d92SAndroid Build Coastguard Workerset -e 95*fb0c9d92SAndroid Build Coastguard Worker 96*fb0c9d92SAndroid Build Coastguard WorkerCLASSPATH=${ANDROID_HOST_OUT}/framework/currysrc.jar 97*fb0c9d92SAndroid Build Coastguard WorkerCHANGE_LOG=$(mktemp --suffix srcgen-change.log) 98*fb0c9d92SAndroid Build Coastguard Worker 99*fb0c9d92SAndroid Build Coastguard Workercd ${ANDROID_BUILD_TOP} 100*fb0c9d92SAndroid Build Coastguard Workerbuild/soong/soong_ui.bash --make-mode currysrc 101*fb0c9d92SAndroid Build Coastguard Worker 102*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${SRCGEN_DIR}" ]]; then 103*fb0c9d92SAndroid Build Coastguard Worker SRCGEN_DIR=${PROJECT_DIR}/srcgen 104*fb0c9d92SAndroid Build Coastguard Workerfi 105*fb0c9d92SAndroid Build Coastguard Worker 106*fb0c9d92SAndroid Build Coastguard WorkerDEFAULT_CONSTRUCTORS_FILE=${SRCGEN_DIR}/default-constructors.txt 107*fb0c9d92SAndroid Build Coastguard WorkerCORE_PLATFORM_API_FILE=${SRCGEN_DIR}/core-platform-api.txt 108*fb0c9d92SAndroid Build Coastguard WorkerSTABLE_CORE_PLATFORM_API_FILE=${SRCGEN_DIR}/stable-core-platform-api.txt 109*fb0c9d92SAndroid Build Coastguard WorkerINTRA_CORE_API_FILE=${SRCGEN_DIR}/intra-core-api.txt 110*fb0c9d92SAndroid Build Coastguard WorkerUNSUPPORTED_APP_USAGE_FILE=${SRCGEN_DIR}/unsupported-app-usage.json 111*fb0c9d92SAndroid Build Coastguard WorkerFLAGGED_API_FILE=${SRCGEN_DIR}/flagged-api.json 112*fb0c9d92SAndroid Build Coastguard Worker 113*fb0c9d92SAndroid Build Coastguard WorkerTAB_SIZE=${TAB_SIZE-4} 114*fb0c9d92SAndroid Build Coastguard Worker 115*fb0c9d92SAndroid Build Coastguard WorkerREPACKAGE_ARGS="" 116*fb0c9d92SAndroid Build Coastguard WorkerSEP="" 117*fb0c9d92SAndroid Build Coastguard Workerfor i in ${PACKAGE_TRANSFORMATIONS} 118*fb0c9d92SAndroid Build Coastguard Workerdo 119*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--package-transformation ${i}" 120*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 121*fb0c9d92SAndroid Build Coastguard Workerdone 122*fb0c9d92SAndroid Build Coastguard Worker 123*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${DEFAULT_CONSTRUCTORS_FILE}" ]]; then 124*fb0c9d92SAndroid Build Coastguard Worker echo "Adding default constructors from ${DEFAULT_CONSTRUCTORS_FILE}" 125*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--default-constructors-file ${DEFAULT_CONSTRUCTORS_FILE}" 126*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 127*fb0c9d92SAndroid Build Coastguard Workerfi 128*fb0c9d92SAndroid Build Coastguard Worker 129*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${CORE_PLATFORM_API_FILE}" ]]; then 130*fb0c9d92SAndroid Build Coastguard Worker echo "Adding CorePlatformApi annotations from ${CORE_PLATFORM_API_FILE}" 131*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--core-platform-api-file ${CORE_PLATFORM_API_FILE}" 132*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 133*fb0c9d92SAndroid Build Coastguard Workerfi 134*fb0c9d92SAndroid Build Coastguard Worker 135*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${STABLE_CORE_PLATFORM_API_FILE}" ]]; then 136*fb0c9d92SAndroid Build Coastguard Worker echo "Adding CorePlatformApi(status=STABLE) annotations from ${STABLE_CORE_PLATFORM_API_FILE}" 137*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--stable-core-platform-api-file ${STABLE_CORE_PLATFORM_API_FILE}" 138*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 139*fb0c9d92SAndroid Build Coastguard Workerfi 140*fb0c9d92SAndroid Build Coastguard Worker 141*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${INTRA_CORE_API_FILE}" ]]; then 142*fb0c9d92SAndroid Build Coastguard Worker echo "Adding IntraCoreApi annotations from ${INTRA_CORE_API_FILE}" 143*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--intra-core-api-file ${INTRA_CORE_API_FILE}" 144*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 145*fb0c9d92SAndroid Build Coastguard Workerfi 146*fb0c9d92SAndroid Build Coastguard Worker 147*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${UNSUPPORTED_APP_USAGE_FILE}" ]]; then 148*fb0c9d92SAndroid Build Coastguard Worker echo "Adding UnsupportedAppUsage annotations from ${UNSUPPORTED_APP_USAGE_FILE}" 149*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--unsupported-app-usage-file ${UNSUPPORTED_APP_USAGE_FILE}" 150*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 151*fb0c9d92SAndroid Build Coastguard Worker if [[ -n "${UNSUPPORTED_APP_USAGE_CLASS}" ]]; then 152*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--unsupported-app-usage-class ${UNSUPPORTED_APP_USAGE_CLASS}" 153*fb0c9d92SAndroid Build Coastguard Worker fi 154*fb0c9d92SAndroid Build Coastguard Workerfi 155*fb0c9d92SAndroid Build Coastguard Worker 156*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${FLAGGED_API_FILE}" ]]; then 157*fb0c9d92SAndroid Build Coastguard Worker echo "Adding FlaggedApi annotations from ${FLAGGED_API_FILE}" 158*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--flagged-api-file ${FLAGGED_API_FILE}" 159*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 160*fb0c9d92SAndroid Build Coastguard Workerfi 161*fb0c9d92SAndroid Build Coastguard Worker 162*fb0c9d92SAndroid Build Coastguard Workerif [[ -n "${TAB_SIZE}" ]]; then 163*fb0c9d92SAndroid Build Coastguard Worker echo "Using tab size of ${TAB_SIZE}" 164*fb0c9d92SAndroid Build Coastguard Worker REPACKAGE_ARGS="${REPACKAGE_ARGS}${SEP}--tab-size ${TAB_SIZE}" 165*fb0c9d92SAndroid Build Coastguard Worker SEP=" " 166*fb0c9d92SAndroid Build Coastguard Workerfi 167*fb0c9d92SAndroid Build Coastguard Worker 168*fb0c9d92SAndroid Build Coastguard Workerfunction do_transform() { 169*fb0c9d92SAndroid Build Coastguard Worker local SRC_IN_DIR=$1 170*fb0c9d92SAndroid Build Coastguard Worker local SRC_OUT_DIR=$2 171*fb0c9d92SAndroid Build Coastguard Worker 172*fb0c9d92SAndroid Build Coastguard Worker rm -rf ${SRC_OUT_DIR} 173*fb0c9d92SAndroid Build Coastguard Worker mkdir -p ${SRC_OUT_DIR} 174*fb0c9d92SAndroid Build Coastguard Worker 175*fb0c9d92SAndroid Build Coastguard Worker java -cp ${CLASSPATH} com.google.currysrc.aosp.RepackagingTransform \ 176*fb0c9d92SAndroid Build Coastguard Worker --source-dir ${SRC_IN_DIR} \ 177*fb0c9d92SAndroid Build Coastguard Worker --target-dir ${SRC_OUT_DIR} \ 178*fb0c9d92SAndroid Build Coastguard Worker --change-log ${CHANGE_LOG} \ 179*fb0c9d92SAndroid Build Coastguard Worker ${REPACKAGE_ARGS} 180*fb0c9d92SAndroid Build Coastguard Worker 181*fb0c9d92SAndroid Build Coastguard Worker # Restore TEST_MAPPING files that may have been removed from the source directory 182*fb0c9d92SAndroid Build Coastguard Worker (cd $SRC_OUT_DIR; git checkout HEAD $(git status --short | grep -E "^ D .*/TEST_MAPPING$" | cut -c4-)) 183*fb0c9d92SAndroid Build Coastguard Worker} 184*fb0c9d92SAndroid Build Coastguard Worker 185*fb0c9d92SAndroid Build Coastguard Workerif [[ -z "${REPACKAGED_DIR}" ]]; then 186*fb0c9d92SAndroid Build Coastguard Worker REPACKAGED_DIR=${PROJECT_DIR}/repackaged 187*fb0c9d92SAndroid Build Coastguard Workerfi 188*fb0c9d92SAndroid Build Coastguard Worker 189*fb0c9d92SAndroid Build Coastguard Workerfor i in ${MODULE_DIRS} 190*fb0c9d92SAndroid Build Coastguard Workerdo 191*fb0c9d92SAndroid Build Coastguard Worker MODULE_DIR=${PROJECT_DIR}/${i} 192*fb0c9d92SAndroid Build Coastguard Worker if [[ ! -d ${MODULE_DIR} ]]; then 193*fb0c9d92SAndroid Build Coastguard Worker echo "Module directory ${MODULE_DIR} does not exist" >&2 194*fb0c9d92SAndroid Build Coastguard Worker exit 1; 195*fb0c9d92SAndroid Build Coastguard Worker fi 196*fb0c9d92SAndroid Build Coastguard Worker 197*fb0c9d92SAndroid Build Coastguard Worker for s in ${SOURCE_DIRS} 198*fb0c9d92SAndroid Build Coastguard Worker do 199*fb0c9d92SAndroid Build Coastguard Worker IN=${MODULE_DIR}/${s} 200*fb0c9d92SAndroid Build Coastguard Worker if [[ -d ${IN} ]]; then 201*fb0c9d92SAndroid Build Coastguard Worker OUT=${REPACKAGED_DIR}/${i}/${s} 202*fb0c9d92SAndroid Build Coastguard Worker do_transform ${IN} ${OUT} 203*fb0c9d92SAndroid Build Coastguard Worker fi 204*fb0c9d92SAndroid Build Coastguard Worker done 205*fb0c9d92SAndroid Build Coastguard Workerdone 206*fb0c9d92SAndroid Build Coastguard Worker 207*fb0c9d92SAndroid Build Coastguard Worker# Check to ensure that the entries in the change log are correct 208*fb0c9d92SAndroid Build Coastguard Workertypeset -i ERROR=0 209*fb0c9d92SAndroid Build Coastguard Workerfunction checkChangeLog { 210*fb0c9d92SAndroid Build Coastguard Worker local IN="$1" 211*fb0c9d92SAndroid Build Coastguard Worker local TAG="$2" 212*fb0c9d92SAndroid Build Coastguard Worker local MSG="$3" 213*fb0c9d92SAndroid Build Coastguard Worker DIFF=$(comm -23 "${IN}" <(grep -P "^\Q$TAG\E:" ${CHANGE_LOG} | cut -f2- -d: | sort -u)) 214*fb0c9d92SAndroid Build Coastguard Worker if [[ -n "${DIFF}" ]]; then 215*fb0c9d92SAndroid Build Coastguard Worker ERROR=1 216*fb0c9d92SAndroid Build Coastguard Worker echo -e "\nERROR: ${MSG}" >&2 217*fb0c9d92SAndroid Build Coastguard Worker for i in ${DIFF} 218*fb0c9d92SAndroid Build Coastguard Worker do 219*fb0c9d92SAndroid Build Coastguard Worker echo " $i" >&2 220*fb0c9d92SAndroid Build Coastguard Worker done 221*fb0c9d92SAndroid Build Coastguard Worker echo >&2 222*fb0c9d92SAndroid Build Coastguard Worker fi 223*fb0c9d92SAndroid Build Coastguard Worker} 224*fb0c9d92SAndroid Build Coastguard Worker 225*fb0c9d92SAndroid Build Coastguard Workerfunction extractLocationsFromJson { 226*fb0c9d92SAndroid Build Coastguard Worker grep @location "$1" | grep -vE "[[:space:]]*//" | cut -f4 -d\" | sort -u 227*fb0c9d92SAndroid Build Coastguard Worker} 228*fb0c9d92SAndroid Build Coastguard Worker 229*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${DEFAULT_CONSTRUCTORS_FILE}" ]]; then 230*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested default constructors were added. 231*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(sort -u "${DEFAULT_CONSTRUCTORS_FILE}" | grep -v '^#') "AddDefaultConstructor" \ 232*fb0c9d92SAndroid Build Coastguard Worker "Default constructors were not added at the following locations from ${DEFAULT_CONSTRUCTORS_FILE}:" 233*fb0c9d92SAndroid Build Coastguard Workerfi 234*fb0c9d92SAndroid Build Coastguard Worker 235*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${CORE_PLATFORM_API_FILE}" ]]; then 236*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested annotations were added. 237*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(sort -u "${CORE_PLATFORM_API_FILE}" | grep -v '^#') "@libcore.api.CorePlatformApi" \ 238*fb0c9d92SAndroid Build Coastguard Worker "CorePlatformApi annotations were not added at the following locations from ${CORE_PLATFORM_API_FILE}:" 239*fb0c9d92SAndroid Build Coastguard Workerfi 240*fb0c9d92SAndroid Build Coastguard Worker 241*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${STABLE_CORE_PLATFORM_API_FILE}" ]]; then 242*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested annotations were added. 243*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(sort -u "${STABLE_CORE_PLATFORM_API_FILE}" | grep -v '^#') "@libcore.api.CorePlatformApi" \ 244*fb0c9d92SAndroid Build Coastguard Worker "CorePlatformApi annotations were not added at the following locations from ${STABLE_CORE_PLATFORM_API_FILE}:" 245*fb0c9d92SAndroid Build Coastguard Workerfi 246*fb0c9d92SAndroid Build Coastguard Worker 247*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${INTRA_CORE_API_FILE}" ]]; then 248*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested annotations were added. 249*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(sort -u "${INTRA_CORE_API_FILE}" | grep -v '^#') "@libcore.api.IntraCoreApi" \ 250*fb0c9d92SAndroid Build Coastguard Worker "IntraCoreApi annotations were not added at the following locations from ${INTRA_CORE_API_FILE}:" 251*fb0c9d92SAndroid Build Coastguard Workerfi 252*fb0c9d92SAndroid Build Coastguard Worker 253*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${UNSUPPORTED_APP_USAGE_FILE}" ]]; then 254*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested annotations were added. 255*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(extractLocationsFromJson "${UNSUPPORTED_APP_USAGE_FILE}") \ 256*fb0c9d92SAndroid Build Coastguard Worker "@android.compat.annotation.UnsupportedAppUsage" \ 257*fb0c9d92SAndroid Build Coastguard Worker "UnsupportedAppUsage annotations were not added at the following locations from ${UNSUPPORTED_APP_USAGE_FILE}:" 258*fb0c9d92SAndroid Build Coastguard Workerfi 259*fb0c9d92SAndroid Build Coastguard Worker 260*fb0c9d92SAndroid Build Coastguard Workerif [[ -f "${FLAGGED_API_FILE}" ]]; then 261*fb0c9d92SAndroid Build Coastguard Worker # Check to ensure that all the requested annotations were added. 262*fb0c9d92SAndroid Build Coastguard Worker checkChangeLog <(extractLocationsFromJson "${FLAGGED_API_FILE}") \ 263*fb0c9d92SAndroid Build Coastguard Worker "@android.annotation.FlaggedApi" \ 264*fb0c9d92SAndroid Build Coastguard Worker "FlaggedApi annotations were not added at the following locations from ${FLAGGED_API_FILE}:" 265*fb0c9d92SAndroid Build Coastguard Workerfi 266*fb0c9d92SAndroid Build Coastguard Worker 267*fb0c9d92SAndroid Build Coastguard Workerif [[ $ERROR = 1 ]]; then 268*fb0c9d92SAndroid Build Coastguard Worker echo "Errors found during transformation, see above.\n" >&2 269*fb0c9d92SAndroid Build Coastguard Worker exit 1 270*fb0c9d92SAndroid Build Coastguard Workerfi 271