From 375190e76e7d4565246067fa79095eccb176be4a Mon Sep 17 00:00:00 2001 From: Jiquan Long Date: Thu, 22 Feb 2024 19:40:53 +0800 Subject: [PATCH] fix: cpp format check not work (#30767) fix: #30765 --------- Signed-off-by: longjiquan --- Makefile | 3 ++- scripts/check_cpp_fmt.sh | 47 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100755 scripts/check_cpp_fmt.sh diff --git a/Makefile b/Makefile index cda85e3784..3f42991af8 100644 --- a/Makefile +++ b/Makefile @@ -100,7 +100,8 @@ tools/bin/revive: tools/check/go.mod $(GO) build -o ../bin/revive github.com/mgechev/revive cppcheck: - @(env bash ${PWD}/scripts/core_build.sh -l) + @#(env bash ${PWD}/scripts/core_build.sh -l) + @(env bash ${PWD}/scripts/check_cpp_fmt.sh) fmt: diff --git a/scripts/check_cpp_fmt.sh b/scripts/check_cpp_fmt.sh new file mode 100755 index 0000000000..f552f79d77 --- /dev/null +++ b/scripts/check_cpp_fmt.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# Licensed to the LF AI & Data foundation under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +SOURCE="${BASH_SOURCE[0]}" +while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink + DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )" + SOURCE="$(readlink "$SOURCE")" + [[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located +done +ROOT_DIR="$( cd -P "$( dirname "$SOURCE" )/.." && pwd )" + +CPP_SRC_DIR="${ROOT_DIR}/internal/core" + +pushd $CPP_SRC_DIR +./run_clang_format.sh . +popd + +if [[ $(uname -s) == "Darwin" ]]; then + if ! brew --prefix --installed grep >/dev/null 2>&1; then + brew install grep + fi + export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH" +fi + +check_result=$(git status | grep -E "*\.h|*\.hpp|*\.cc|*\.cpp") +echo "check_result: $check_result" +if test -z "$check_result"; then + exit 0 +else + echo "The cpp files are not formatted, please use internal/core/run_clang_format.sh" + exit 1 +fi