blob: 94052325d4e814fb19438580f0331c58d694acb0 [file] [log] [blame]
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage: `basename $0` FILE"
exit 1
fi
set -e
CURRENT_DIR=${PWD}
extract () {
FILENAME=$1
if [ "_${FILENAME}" != "_" ] && [ -f ${FILENAME} ] ; then
case $1 in
*.tar.bz2) mv ${FILENAME} ${FILENAME%.*.*}.tbz ;;
*.tar.gz) mv ${FILENAME} ${FILENAME%.*.*}.tgz ;;
esac
case ${FILENAME} in
*.tar) tar xf ${FILENAME}; rm -f ${FILENAME};;
*.tbz2) tar xjf ${FILENAME}; rm -f ${FILENAME};;
*.tgz) tar xzf ${FILENAME}; rm -f ${FILENAME};;
*.zip) unzip ${FILENAME}; rm -f ${FILENAME};;
*.gz) gunzip ${FILENAME}; rm -f ${FILENAME};;
*.bz2) bunzip2 ${FILENAME}; rm -f ${FILENAME};;
esac
fi
}
file_exist() {
( [ "_$1" != "_" ] && timeout 5 curl --output /dev/null --silent --fail -r 0-0 $1 ) && echo "success" || echo "failed"
}
clean_up_directory() {
# files to remove
ripe_for_removal="__MACOSX"
# check if its in a subdirectory
FILE_COUNT=$(ls -1 | wc -l)
while /bin/true; do
if [ "${FILE_COUNT}" == "0" ]
then
echo "failed"
exit 1
else
rm -Rf ${ripe_for_removal}
if [ "${FILE_COUNT}" == "1" ]
then
DOWNLOADED_FILE="$(ls)"
if [ -d "${DOWNLOADED_FILE}" ]
then
mv ${DOWNLOADED_FILE}/* ./
rm -Rf ${DOWNLOADED_FILE}
else
break
fi
else
break
fi
fi
done
}
download() {
url=$1
output_dir=$(basename ${url} | cut -d '.' -f 1)
valid_url=$(file_exist ${url})
if [ ${valid_url} == "success" ]; then
TEMP_DIR=$(mktemp -d)
cd ${TEMP_DIR}
wget ${url}
DOWNLOADED_FILE="$(ls)"
extract "${DOWNLOADED_FILE}"
clean_up_directory
cd ${CURRENT_DIR}
mv ${TEMP_DIR}/* ${output_dir}
else
exit 1
fi
}
download $1