-
Eoin Clerkin authored
Inserts the declaration on the 1st or 2nd line of scripts. EMPTY LINE Short license declarations for .sh files Inserts the declaration on the 1st or 2nd line of scripts. EMPTY LINE Revert "Short license declarations for .sh files" This reverts commit d3dd8608. Uses SPDX identifier Modifies declaration to use SPDX license identifier syntax Corrects file Empty line before hashbang removed
Eoin Clerkin authoredInserts the declaration on the 1st or 2nd line of scripts. EMPTY LINE Short license declarations for .sh files Inserts the declaration on the 1st or 2nd line of scripts. EMPTY LINE Revert "Short license declarations for .sh files" This reverts commit d3dd8608. Uses SPDX identifier Modifies declaration to use SPDX license identifier syntax Corrects file Empty line before hashbang removed
check-apply-format-changes.sh 2.31 KiB
#!/bin/bash
# Copyright (C) 2020 Facility for Antiproton and Ion Research in Europe, Darmstadt
# SPDX-License-Identifier: GPL-3.0-only
# First commited by Pierre-Alain Loizeau
if [[ $# -ne 1 ]]; then
echo "Missing argument! please call this script with either the check or apply argument:"
echo "./scripts/check-apply-format-changes.sh check"
echo "./scripts/check-apply-format-changes.sh apply"
exit -1
fi
if [[ -z $GIT_CLANG_FORMAT_BIN || -z $CLANG_FORMAT_BIN ]]; then
echo "Error: GIT_CLANG_FORMAT_BIN or CLANG_FORMAT_BIN not defined"
echo "=> Please follow the instruction at https://redmine.cbm.gsi.de/projects/cbmroot/wiki/Clang-format"
exit -1
fi
# Check clang-format version
VERSION=$($CLANG_FORMAT_BIN --version)
if [[ "$VERSION" != *"11.0.0"* ]]; then
echo "Error: CLANG_FORMAT_BIN version not matching the standard cbmroot one (used in the MR test chain)"
echo "11.0.0 vs " $VERSION
echo "=> Please follow the instruction at https://redmine.cbm.gsi.de/projects/cbmroot/wiki/Clang-format"
exit -1
fi
if [ -z $UPSTREAM ]; then
UPSTREAM=$(git remote -v | grep git.cbm.gsi.de[:/]computing/cbmroot | cut -f1 | uniq)
if [ -z $UPSTREAM ]; then
echo "Error: Name of upstream repository not provided and not found by automatic means"
echo 'Please provide if by checking your remotes with "git remote -v" and exporting UPSTREAM'
exit -1
fi
fi
echo "Upstream name is :" $UPSTREAM
BASE_COMMIT=$UPSTREAM/master
CHANGED_FILES=$(git diff --name-only $BASE_COMMIT | grep -E '.*\.(h|hpp|c|C|cpp|cxx|tpl)$' | grep -viE '.*LinkDef.h$')
case $1 in
check)
echo "Checking if there are format changes required"
git fetch $UPSTREAM
$GIT_CLANG_FORMAT_BIN --binary $CLANG_FORMAT_BIN --commit $BASE_COMMIT --diff $CHANGED_FILES --extensions h,hpp,c,C,cpp,cxx,tpl
;;
apply)
echo "Applying required format changes"
$GIT_CLANG_FORMAT_BIN --binary $CLANG_FORMAT_BIN --verbose --commit $BASE_COMMIT $CHANGED_FILES --extensions h,hpp,c,C,cpp,cxx,tpl
git status
echo "Next step: git add "$CHANGED_FILES
echo 'Then : git commit -m"Apply clang-format"'
;;
*)
echo "Invalid argument! please call this script with either the check or apply argument:"
echo "./scripts/check-apply-format-changes.sh check"
echo "./scripts/check-apply-format-changes.sh apply"
exit -1
;;
esac