#!/bin/bash LOCAL_DIR="$( dirname "${BASH_SOURCE}" )" MAINLINE_FRAMEWORKS_AV_PATHS=( media/extractors/ media/codec2/components/ media/libstagefright/codecs/amrnb media/libstagefright/codecs/amrwb media/libstagefright/codecs/amrwbenc media/libstagefright/codecs/common media/libstagefright/codecs/mp3dec media/libstagefright/codecs/m4v_h263 media/libstagefright/flac/dec media/libstagefright/mpeg2ts ) MAINLINE_EXTERNAL_PROJECTS=( external/aac external/flac external/libaac external/libaom external/libavc external/libgav1 external/libgsm external/libhevc external/libmpeg2 external/libopus external/libvpx external/libxaac external/sonivox external/tremolo ) DEV_BRANCH=qt-aml-media-dev RED=$(tput setaf 1) NORMAL=$(tput sgr0) WARNING_FULL="${RED}Please upload this change in ${DEV_BRANCH} unless it is restricted from mainline release until next dessert release. Low/moderate security bugs are restricted this way.${NORMAL}" WARNING_PARTIAL="${RED}It looks like your change has mainline and non-mainline changes; Consider separating them into two separate CLs -- one for mainline files, one for non-mainline files.${NORMAL}" PWD=`pwd` if git branch -vv | grep -q -P "^\*[^\[]+\[goog/qt-aml-media-dev"; then # Change appears to be in mainline dev branch exit 0 fi for path in "${MAINLINE_EXTERNAL_PROJECTS[@]}"; do if [[ $PWD =~ $path ]]; then echo -e "${RED}The source of truth for '$path' is in ${DEV_BRANCH}.${NORMAL}" echo -e ${WARNING_FULL} exit 1 fi done if [[ ! $PWD =~ frameworks/av ]]; then exit 0 fi mainline_count=0 total_count=0 echo while read -r file ; do (( total_count++ )) for path in "${MAINLINE_FRAMEWORKS_AV_PATHS[@]}"; do if [[ $file =~ ^$path ]]; then echo -e "${RED}The source of truth for '$file' is in ${DEV_BRANCH}.${NORMAL}" (( mainline_count++ )) break fi done done < <(git show --name-only --pretty=format: $1 | grep -- "$2") if (( mainline_count != 0 )); then if (( mainline_count == total_count )); then echo -e ${WARNING_FULL} else echo -e ${WARNING_PARTIAL} fi exit 1 fi exit 0