Put back list-identifiers.sh as a thin wrapper around the python script

Signed-off-by: Yuto Takano <yuto.takano@arm.com>
This commit is contained in:
Yuto Takano 2021-08-10 15:09:16 +01:00
parent 206b022ad0
commit ac72fac465
2 changed files with 70 additions and 3 deletions

View file

@ -0,0 +1,66 @@
#!/bin/bash
#
# Create a file named identifiers containing identifiers from internal header
# files, based on the --internal flag.
# Outputs the line count of the file to stdout.
# A very thin wrapper around list_internal_identifiers.py for backwards
# compatibility.
# Must be run from Mbed TLS root.
#
# Usage: list-identifiers.sh [ -i | --internal ]
#
# Copyright The Mbed TLS Contributors
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eu
if [ -d include/mbedtls ]; then :; else
echo "$0: Must be run from Mbed TLS root" >&2
exit 1
fi
INTERNAL=""
until [ -z "${1-}" ]
do
case "$1" in
-i|--internal)
INTERNAL="1"
;;
*)
# print error
echo "Unknown argument: '$1'"
exit 1
;;
esac
shift
done
if [ $INTERNAL ]
then
tests/scripts/list_internal_identifiers.py
wc -l identifiers
else
cat <<EOF
Sorry, this script has to be called with --internal.
This script exists solely for backwards compatibility for the previous ieration
of list-identifiers.sh, of which only the --internal option remains in use. It
is a thin wrapper around list_internal_identifiers.py.
check-names.sh, which used to depend on this script, has been replaced with
check_names.py and is now self-complete.
EOF
fi

View file

@ -16,7 +16,7 @@
# limitations under the License. # limitations under the License.
""" """
This script generates a file called _identifiers that contains all Mbed TLS This script generates a file called identifiers that contains all Mbed TLS
identifiers found on internal headers. This is the equivalent of what was identifiers found on internal headers. This is the equivalent of what was
previously `list-identifiers.sh --internal`, and is useful for generating an previously `list-identifiers.sh --internal`, and is useful for generating an
exclusion file list for ABI/API checking, since we do not promise compatibility exclusion file list for ABI/API checking, since we do not promise compatibility
@ -39,7 +39,7 @@ def main():
formatter_class=argparse.RawDescriptionHelpFormatter, formatter_class=argparse.RawDescriptionHelpFormatter,
description=( description=(
"This script writes a list of parsed identifiers in internal " "This script writes a list of parsed identifiers in internal "
"headers to \"_identifiers\". This is useful for generating a list " "headers to \"identifiers\". This is useful for generating a list "
"of names to exclude from API/ABI compatibility checking. ")) "of names to exclude from API/ABI compatibility checking. "))
parser.parse_args() parser.parse_args()
@ -50,9 +50,10 @@ def main():
"include/mbedtls/*_internal.h", "include/mbedtls/*_internal.h",
"library/*.h" "library/*.h"
]) ])
result.sort(key=lambda x: x.name)
identifiers = ["{}\n".format(match.name) for match in result] identifiers = ["{}\n".format(match.name) for match in result]
with open("_identifiers", "w", encoding="utf-8") as f: with open("identifiers", "w", encoding="utf-8") as f:
f.writelines(identifiers) f.writelines(identifiers)
except Exception: # pylint: disable=broad-except except Exception: # pylint: disable=broad-except