blob: 98120de793e3fd309d4f6d650d66c16757f0a57f [file] [log] [blame]
#!/bin/bash
# $1 : url where files are located
# $2 : compressed file expected
# $3 - $N : list of files expected in case compressed files doesn't exist
pushd `dirname $0` &> /dev/null
MY_DIR=$(pwd)
popd &> /dev/null
retry="$MY_DIR/retry.py -s 1 -r 2"
usage(){
echo "Usage: wget_unpack.sh URL EXPECTED_PACK FILE_LIST..."
echo " URL: url where files are located"
echo " EXPECTED_PACK: name of expected package"
echo " FILE_LIST: the arbitrary number of files that are expected in package"
echo " and the file each should be copied to. ( : separated)"
echo " Ex: malloc.log:malloc.log.old"
}
# We will need the return codes from wget. If wget fails we have other logic to execute.
set +e
#stop the attempts if we get a 404, we will try something else in that case
# The '[ ]' in the regexp is necessary to avoid log parser false positives.
${retry} --stderr-regexp 'ERROR[ ]404: Not Found' --fail-if-match wget -O wget_unpack.tar.gz ${1}/${2}
getResult=$?
tar -xzvf wget_unpack.tar.gz
unpackResult=$?
set -e
# if these steps succeed, move the files to their target filenames
# if these steps fail, go get the files individually.
if [ $getResult -eq 0 ] && [ $unpackResult -eq 0 ]; then
echo "Got the packed files"
for ((i=3 ; i <= $# ; i++ )); do
# grab sections before and after ':'
front=${!i%:*}
back=${!i#*:}
if [ -z "$front" ] || [ -z "$back" ]; then
usage
exit 1
fi
echo "mv ./${front} ./${back}"
mv ./${front} ./${back}
done
else
echo "Packed file not available, try getting individual files"
for ((i=3 ; i <= $# ; i++ )); do
# grab sections before and after ':'
front=${!i%:*}
back=${!i#*:}
if [ -z "$front" ] || [ -z "$back" ]; then
usage
exit 1
fi
${retry} --stderr-regexp 404 --fail-if-match wget -O ${back} ${1}/${front}
done
fi
rm wget_unpack.tar.gz