1*d57664e9SAndroid Build Coastguard Worker#!/bin/bash 2*d57664e9SAndroid Build Coastguard WorkerLOCAL_DIR="$( dirname "${BASH_SOURCE}" )" 3*d57664e9SAndroid Build Coastguard Worker 4*d57664e9SAndroid Build Coastguard Workerif git log -n 1 --format='%D' HEAD@{upstream} | grep -q aosp/; then 5*d57664e9SAndroid Build Coastguard Worker # Change appears to be in AOSP 6*d57664e9SAndroid Build Coastguard Worker exit 0 7*d57664e9SAndroid Build Coastguard Workerelif git log -n 1 --format='%B' $1 | grep -q -E "^Ignore-AOSP-First: .+" ; then 8*d57664e9SAndroid Build Coastguard Worker # Change is explicitly marked as ok to skip AOSP 9*d57664e9SAndroid Build Coastguard Worker exit 0 10*d57664e9SAndroid Build Coastguard Workerelse 11*d57664e9SAndroid Build Coastguard Worker # Change appears to be non-AOSP. 12*d57664e9SAndroid Build Coastguard Worker 13*d57664e9SAndroid Build Coastguard Worker # If this is a cherry-pick, then allow it. 14*d57664e9SAndroid Build Coastguard Worker cherrypick=0 15*d57664e9SAndroid Build Coastguard Worker while read -r line ; do 16*d57664e9SAndroid Build Coastguard Worker if [[ $line =~ cherry\ picked\ from ]] ; then 17*d57664e9SAndroid Build Coastguard Worker (( cherrypick++ )) 18*d57664e9SAndroid Build Coastguard Worker fi 19*d57664e9SAndroid Build Coastguard Worker done < <(git show $1) 20*d57664e9SAndroid Build Coastguard Worker if (( cherrypick != 0 )); then 21*d57664e9SAndroid Build Coastguard Worker # This is a cherry-pick, so allow it. 22*d57664e9SAndroid Build Coastguard Worker exit 0 23*d57664e9SAndroid Build Coastguard Worker fi 24*d57664e9SAndroid Build Coastguard Worker 25*d57664e9SAndroid Build Coastguard Worker # See if any files are affected. 26*d57664e9SAndroid Build Coastguard Worker count=0 27*d57664e9SAndroid Build Coastguard Worker while read -r file ; do 28*d57664e9SAndroid Build Coastguard Worker if (( count == 0 )); then 29*d57664e9SAndroid Build Coastguard Worker echo 30*d57664e9SAndroid Build Coastguard Worker fi 31*d57664e9SAndroid Build Coastguard Worker echo -e "\033[0;31;47mThe source of truth for '$file' is in AOSP.\033[0m" 32*d57664e9SAndroid Build Coastguard Worker (( count++ )) 33*d57664e9SAndroid Build Coastguard Worker done < <(git show --name-only --pretty=format: $1 | grep -- "$2") 34*d57664e9SAndroid Build Coastguard Worker if (( count != 0 )); then 35*d57664e9SAndroid Build Coastguard Worker echo 36*d57664e9SAndroid Build Coastguard Worker echo "If your change contains no confidential details (such as security fixes), please" 37*d57664e9SAndroid Build Coastguard Worker echo "upload and merge this change at https://android-review.googlesource.com/." 38*d57664e9SAndroid Build Coastguard Worker echo "Else add a tag 'Ignore-AOSP-First:' with the reason to bypass AOSP." 39*d57664e9SAndroid Build Coastguard Worker echo 40*d57664e9SAndroid Build Coastguard Worker exit 1 41*d57664e9SAndroid Build Coastguard Worker fi 42*d57664e9SAndroid Build Coastguard Workerfi 43