Skip to content
Snippets Groups Projects
  • Eoin Clerkin's avatar
    6f6619b0
    Short license declarations for .sh files · 6f6619b0
    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
    6f6619b0
    History
    Short license declarations for .sh files
    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
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