#!/bin/sh

sleep 1
todayDate=`/bin/date +%Y%m%d%H%M%S`
processID="$$"
hostName=${HOSTNAME}
userName=${USER}

TMPFILE=/tmp/tmp_${userName}_${hostName}_${todayDate}_${processID}.txt

if [ $# -lt 3 -o $# -gt 4 ]; then
	echo Usage: CopyFromDiskToSE "[-v]" DIR PATTERN DESTDIR
	echo 
	echo ex: CopyFromDiskToSE /tmp/ pool.root gsiftp://castorgrid.cern.ch/castor/cern.ch/grid/atlas/tmp/
	exit 1
fi
if [ $# -eq 4 -a $1 != "-v" ]; then
	echo Usage: CopyFromDiskToSE "[-v]" DIR PATTERN DESTDIR
	echo 
	echo ex: CopyFromDiskToSE /tmp/ pool.root gsiftp://castorgrid.cern.ch/castor/cern.ch/grid/atlas/tmp/
	exit 1
fi
if [ $# -eq 3 -a $1 = "-v" ]; then
        echo Usage: CopyFromDiskToSE "[-v]" DIR PATTERN DESTDIR
	echo 
	echo ex: CopyFromDiskToSE /tmp/ pool.root gsiftp://castorgrid.cern.ch/castor/cern.ch/grid/atlas/tmp/
        exit 1
fi

trap "doExit" 2 3
 
doExit()
{
    if [ -f ${TMPFILE} ]; then
        rm -rf ${TMPFILE}
    fi
}

verbose=0
DIR=${1}
PATTERN=${2}
DESTDIR=${3}

while getopts :v: x
do case $x in
   v) verbose=1
    DIR=${2}
    PATTERN=${3}
    DESTDIR=${4};;
   \?) echo ERROR unknown option $OPTARG
       exit 1;;
   esac
done

if [ ${verbose} = 1 ]; then
    shift
    shift
    shift
    shift
else
    shift
    shift
    shift
fi

echo ${DIR} | grep -e "^\/"
retcode=`echo $?`
if [ ${retcode} -ne 0 ]; then
    echo must start from / for the local directroy name
    exit 1
fi

find ${DIR} -xtype f -exec echo {} \; | sed "s:${DIR}::" | grep -e "${PATTERN}" > ${TMPFILE}

for loop in `cat ${TMPFILE}`
  do
  if [ ${verbose} = 1 ]; then
      echo ${DIR}/${loop}
  fi
  if [ ${verbose} = 1 ]; then
      echo copying ${loop}
  fi
  globus-url-copy file://${DIR}/${loop} ${DESTDIR}/${loop}
done

rm -rf ${TMPFILE}
