check_user "${prompt}"
}
+# checks if the lfn file exists
function file_exists {
lfnfile="${1:?"provide lfn to file"}"
lfc-ls ${lfnfile} 2>&1 > /dev/null
}
+# upload file to grid storage element
+# source can be a relative or an absolute path to the source file
+# dest must be the lfn to the target **file** (not the directory)
+# if dest already exists, it prompts the user for overwritting
+function upload_file {
+sourcefile=${1:?"provide source file"}
+destlfn=${2:?"provide destination file lfn"}
+sourcefile="$(readlink -f "${sourcefile}")" # convert to absolute path
+test -f "${sourcefile}" || error "can't find ${sourcefile}"
+echo "uploading ${sourcefile} to ${destlfn}"
+if file_exists "${destlfn}"; then
+ check_user "${destlfn} already exists. overwrite it?" || return 2
+ lcg-del -a "lfn:${destlfn}" || error "lcg-del error"
+fi
+echo "lets roll"
+
+local pending_ses=${SES}
+local registered=false
+while [ "x${pending_ses}" != "x" ]
+do
+ #select a se from list
+ local S=`echo ${pending_ses} | awk '{print $1}'`
+ #update list of SEs
+ local new_list=""
+ for i in `echo ${pending_ses}`
+ do
+ if [ "$i" != "${S}" ]
+ then
+ new_list="${new_list} ${i}"
+ fi
+ done
+ pending_ses=${new_list}
+ local TEMP=`mktemp lcg-XXXXX`
+ if [ "${registered}" = "false" ]
+ then
+ echo -n "Registering release to ${S}..."
+ lcg-cr -v -d ${S} -l "lfn:${destlfn}" "file:${sourcefile}" &>${TEMP}
+ if [ $? != 0 ]
+ then
+ echo -e "\t [\033[31m FAILED \033[0m]"
+ cat ${TEMP}
+ \rm ${TEMP}
+ else
+ echo -e "\t [\033[32m OK \033[0m]"
+ registered=true
+ \rm ${TEMP}
+ fi
+ else
+ echo -n "Replicating release to ${S}..."
+ lcg-rep -v -d ${S} "lfn:${destlfn}" &>${TEMP}
+ if [ $? != 0 ]
+ then
+ echo -e "\t [\033[31m FAILED \033[0m]"
+ cat ${TEMP}
+ \rm ${TEMP}
+ else
+ echo -e "\t [\033[32m OK \033[0m]"
+ \rm ${TEMP}
+ fi
+ fi
+done
+}
+
+
# common path used
lfnbase="/grid/biomed/creatis/fgate/"
-lfnrelease="${lfnbase}releases/"
-lfnworkflow="${lfnbase}"
+lfnrelease="/grid/biomed/creatis/vip/data/groups/GateLab/releases/"
+lfnworkflow="${lfnbase}workflow/"
lfngasw="${lfnbase}gasw/"
lfnscript="${lfnbase}bin/"
+#list of SEs used for storage. Don't modify this list unless you know
+# what you're doing. Replicating the release in a bad place (e.g. on a
+# remote continent) can dramatically slow down the transfers
+SES="ccsrm02.in2p3.fr sbgse1.in2p3.fr marsedpm.in2p3.fr"
+
# define the prefix for uploaded file
# default to local machine username
prefix="${USER:?"USER must be set"}_"