From 8bd125210e9a2d50e4de627b0459bb4d363a57bd Mon Sep 17 00:00:00 2001 From: Mark Horvath Date: Mon, 15 Jan 2024 16:56:04 +0100 Subject: [PATCH] [scripts] Add check only option to format.sh Verbose output also become an option, it is turned off by default. --- scripts/format.sh | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/scripts/format.sh b/scripts/format.sh index 3268b3fe6..1517b4028 100755 --- a/scripts/format.sh +++ b/scripts/format.sh @@ -3,6 +3,14 @@ # SPDX-FileCopyrightText: 2023 Arm Limited and/or its affiliates # # SPDX-License-Identifier: Apache-2.0 +# +# Runs clang-format or checks whether the source is well-formatted. +# +# Options: +# CHECK_ONLY: If set to 'ON', the script exists with non-zero value if source is not formatted. Defaults to 'OFF'. +# CLANG_FORMAT_BIN_PATH: Clang-format binary, defaults to 'clang-format'. +# VERBOSE: If set to 'ON', verbose output is printed. Defaults to 'OFF'. +# ------------------------------------------------------------------------------ set -eu @@ -14,7 +22,9 @@ SCRIPT_PATH="$(realpath "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)")" INTRINSICCV_ROOT_PATH="$(realpath "${SCRIPT_PATH}"/..)" +: "${CHECK_ONLY:=OFF}" : "${CLANG_FORMAT_BIN_PATH:=clang-format}" +: "${VERBOSE:=OFF}" # ------------------------------------------------------------------------------ @@ -25,9 +35,19 @@ SOURCES="$(find \ \( -name \*.cpp -o -name \*.h \) \ -print)" +if [[ "${CHECK_ONLY}" == "ON" ]]; then + FORMAT_FLAGS="--dry-run -Werror" +else + FORMAT_FLAGS="-i" +fi + +if [[ "${VERBOSE}" == "ON" ]]; then + FORMAT_FLAGS="${FORMAT_FLAGS} --verbose" +fi + # shellcheck disable=2086 -# Split ${SOURCES}. -"${CLANG_FORMAT_BIN_PATH}" -i --verbose ${SOURCES} +# Split ${SOURCES} and ${FORMAT_FLAGS}. +"${CLANG_FORMAT_BIN_PATH}" ${FORMAT_FLAGS} ${SOURCES} # ------------------------------------------------------------------------------ # End of script -- GitLab