File indexing completed on 2026-04-25 08:29:08
0001
0002
0003 if [ "$#" -ne 1 ] && [ "$#" -ne 4 ] ; then
0004 echo "Unsupported call:"
0005 echo $0 $@
0006 echo Abort.
0007 exit 0
0008 fi
0009
0010 distfilename=${1}
0011 echo "Staging in file ${distfilename}"
0012
0013 md5=-1
0014 size=-1
0015 filesystem=""
0016 if [ "$#" -eq 4 ] ; then
0017 md5=${2}
0018 size=${3}
0019 filesystem=${4}
0020
0021 if [ "${filesystem}" != "lustre" ] ; then
0022 echo "Unsupported filesystem ${filesystem} (expect lustre). Abort."
0023 exit 10
0024 fi
0025 fi
0026
0027 if [ ! -f ${distfilename} ]; then
0028 echo "${distfilename} not found!"
0029 exit 11
0030 fi
0031
0032 filename=`basename ${distfilename}`
0033
0034 maxtries=3
0035 for i in `seq 1 $maxtries`; do
0036 action="dd status=none if=${distfilename} of=./${filename} bs=12MB"
0037 if [ $i -gt 1 ] ; then
0038 echo "Attempt $i: ${action}"
0039 fi
0040 eval ${action}
0041
0042
0043 if [ "${size}" != "-1" ] ; then
0044 actual_size=`stat -c '%s' ${filename}`
0045 if [ "${actual_size}" == "${size}" ] ; then
0046 echo "Size check passed."
0047 break
0048 else
0049 echo "Calculated size: ${actual_size}"
0050 echo "Expected size: ${size}"
0051 echo "Size mismatch on attempt $i."
0052 if [ $i -eq $maxtries ]; then
0053 rm ${filename}
0054 echo "Size mismatch after $maxtries attempts. Abort."
0055 exit 12
0056 fi
0057
0058 fi
0059 else
0060
0061 echo "No size check requested, assume success"
0062 break
0063 fi
0064 done
0065
0066
0067
0068 actual_md5=`/usr/bin/env md5sum ${filename} | cut -d ' ' -f 1`
0069
0070 if [ "${md5}" != "-1" ] ; then
0071 if [ "${actual_md5}" != "${md5}" ] ; then
0072 echo "Calculated md5: ${actual_md5}"
0073 echo "Expected md5 : ${md5}"
0074 echo "md5sum mismatch! Abort."
0075 exit 1
0076 fi
0077 echo "Md5sum check passed."
0078 else
0079 echo "No md5sum check requested, assume success"
0080 fi
0081
0082 exit 0