#!/bin/bash
# Copyright (C) 2021 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
# SPDX-License-Identifier: GPL-3.0-only
# First commited by Florian Uhlig


if [[ $# -eq 1 ]]; then
  UPSTREAM=$1
else
  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'
      echo "or passing as an argument"
      exit -1
    fi
  fi
fi  
echo "Upstream name is :" $UPSTREAM


# If one wants to find all files in the CbmRoot and not only the changed ones
# uncomment the follwing line and comment the next two
#CHANGED_FILES=$(find . -type f -not \( -path "./.git/*" -o -path "./geometry/*" -o -path "./input/*" -o -path "./external/*" -o -path "./parameters/*" -prune \))

BASE_COMMIT=$UPSTREAM/master
CHANGED_FILES=$(git diff --name-only $BASE_COMMIT)

echo ""
for file in $CHANGED_FILES; do

  # First check for text files and only do the further test on line endings
  # for text files
  result=$(file $file | grep -v text)
  if [[ -z $result ]]; then
    if [[ $(tail -c 1 $file) ]]; then
      echo "File $file does not finish with end of line"
      okay=false
    fi
  fi    
done

if [[ "$okay" = "false" ]]; then
  echo ""
  echo "Not all files have the correct file ending"
  echo "Test failed"
  echo ""
  exit 1
else
  exit 0
fi