#!/bin/bash

# The rename script exchange all occurence of NewDetector or NEWDETECTOR
# by the name given by the first parameter. If the detector is for example
# the Trd of the Cbm experiment a good name is CbmTrd. Normaly one should
# use the naming convention of the experiment.
# Also the filenames any many more things are changed automatically. In the
# end there are only some small changes which have to be done by hand.

#set -xv

if [ $# -ne 1 ]; then
  echo "********"
  echo "Please call the script with one parameter, which is the name of the task."
  echo "The script will exchange all default names by the new name"
  echo "********"
  exit 1
fi

TaskName=$1
TaskNameUpper=$(echo $TaskName | tr [:lower:] [:upper:])

#ProjectName=$(echo $2 | tr [:lower:] [:upper:])
#ProjectSourceDir=${ProjectName}_SOURCE_DIR
#RelativeDir=$(basename $PWD)
#Prefix=$3

for i in $(ls NewTask*); do
  oldfile=$i
  newfile=$(echo $oldfile | sed "s/NewTask/$TaskName/")
  mv $oldfile $newfile
done

arch=`uname -s | tr '[A-Z]' '[a-z]'`
case "$arch" in
    linux)
        sedstring="-i "
        ;;
    darwin)
        sedstring="-i .bak"
        ;;
    *)
        echo "Platform not supported"
        exit 1
        ;;
esac

find . -name "*.h" -exec sed -e "s/NewTask/$TaskName/g" $sedstring "{}" ";"
find . -name "*.h" -exec sed -e "s/NEWTASK/$TaskNameUpper/g" $sedstring "{}" ";"
find . -name "*.cxx" -exec sed -e "s/NewTask/$TaskName/g" $sedstring "{}" ";"
find . -name "*.cxx" -exec sed -e "s/NEWTASK/$TaskNameUpper/g" $sedstring "{}" ";"

case "$arch" in
    darwin)
      rm *.bak
      ;;
    *)
      echo "Platform not supported"
      exit 1
      ;;
esac

echo "********"
echo "Edit the CMakeLists.txt and the LinkDef file in the directory."
echo "Add in both files the new task."
echo "********"

#set +xvx