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