Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a10f2e24 authored by Mathew Inwood's avatar Mathew Inwood
Browse files

Add presubmit hook for hidden API lists.

Check that they're sorted as expected and contain no duplicates.
The sort order now uses:
$ LC_COLLATE=C sort -f

So that non-alphanumeric characters are not ignored, giving a more
intuitive sort order. the '-f' means ignore case.

Also sort the existing lists accordingly.

Test: repo upload
Bug: 64382372
Change-Id: I52b884da33a9a46455df6747a215683d9d3c3218
parent 58b1d3b1
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -12,3 +12,5 @@ checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPL
api_lint_hook = ${REPO_ROOT}/frameworks/base/tools/apilint/apilint_sha.sh ${PREUPLOAD_COMMIT}

strings_lint_hook = ${REPO_ROOT}/frameworks/base/tools/stringslint/stringslint_sha.sh ${PREUPLOAD_COMMIT}

hidden_api_txt_hook = ${REPO_ROOT}/frameworks/base/tools/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT}
+541 −541

File changed.

Preview size limit exceeded, changes collapsed.

+78 −78

File changed.

Preview size limit exceeded, changes collapsed.

+10 −0
Original line number Diff line number Diff line
#!/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
+18 −0
Original line number Diff line number Diff line
#!/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"