| #!/bin/bash |
| LOCAL_DIR="$( dirname "${BASH_SOURCE}" )" |
| |
| if git log -n 1 --format='%D' HEAD@{upstream} | grep -q aosp/; then |
| # Change appears to be in AOSP |
| exit 0 |
| elif git log -n 1 --format='%B' $1 | grep -q -E "^Ignore-AOSP-First: .+" ; then |
| # Change is explicitly marked as ok to skip AOSP |
| exit 0 |
| else |
| # Change appears to be non-AOSP. |
| |
| # If this is a cherry-pick, then allow it. |
| cherrypick=0 |
| while read -r line ; do |
| if [[ $line =~ cherry\ picked\ from ]] ; then |
| (( cherrypick++ )) |
| fi |
| done < <(git show $1) |
| if (( cherrypick != 0 )); then |
| # This is a cherry-pick, so allow it. |
| exit 0 |
| fi |
| |
| # See if any files are affected. |
| count=0 |
| while read -r file ; do |
| if (( count == 0 )); then |
| echo |
| fi |
| echo -e "\033[0;31;47mThe source of truth for '$file' is in AOSP.\033[0m" |
| (( count++ )) |
| done < <(git show --name-only --pretty=format: $1 | grep -- "$2") |
| if (( count != 0 )); then |
| echo |
| echo "If your change contains no confidential details (such as security fixes), please" |
| echo "upload and merge this change at https://android-review.googlesource.com/." |
| echo "Else add a tag 'Ignore-AOSP-First:' with the reason to bypass AOSP." |
| echo |
| exit 1 |
| fi |
| fi |