diff options
-rw-r--r-- | PREUPLOAD.cfg | 1 | ||||
-rwxr-xr-x | tools/hiddenapi/checksorted_sha.sh | 10 | ||||
-rwxr-xr-x | tools/hiddenapi/sort_api.sh | 18 |
3 files changed, 29 insertions, 0 deletions
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index 75b74913870f..a632771956ef 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -8,3 +8,4 @@ checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPL services/usb/ telephony/ +hidden_api_txt_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT} diff --git a/tools/hiddenapi/checksorted_sha.sh b/tools/hiddenapi/checksorted_sha.sh new file mode 100755 index 000000000000..ceb705f4e42a --- /dev/null +++ b/tools/hiddenapi/checksorted_sha.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e +LOCAL_DIR="$( dirname ${BASH_SOURCE} )" +git show --name-only --pretty=format: $1 | grep "config/hiddenapi-.*txt" | while read file; do + diff <(git show $1:$file) <(git show $1:$file | $LOCAL_DIR/sort_api.sh ) || { + echo -e "\e[1m\e[31m$file $1 is not sorted or contains duplicates. To sort it correctly:\e[0m" + echo -e "\e[33m${LOCAL_DIR}/sort_api.sh $2/frameworks/base/$file\e[0m" + exit 1 + } +done diff --git a/tools/hiddenapi/sort_api.sh b/tools/hiddenapi/sort_api.sh new file mode 100755 index 000000000000..1c6eb1b286b1 --- /dev/null +++ b/tools/hiddenapi/sort_api.sh @@ -0,0 +1,18 @@ +#!/bin/bash +set -e +if [ -z "$1" ]; then + source_list=/dev/stdin + dest_list=/dev/stdout +else + source_list="$1" + dest_list="$1" +fi +# Load the file +readarray A < "$source_list" +# Sort +IFS=$'\n' +A=( $(LC_COLLATE=C sort -f <<< "${A[*]}") ) +A=( $(uniq <<< "${A[*]}") ) +unset IFS +# Dump array back into the file +printf '%s\n' "${A[@]}" > "$dest_list" |