diff --git a/Utilities/Maintenance/SuperbuildDownloadList.sh b/Utilities/Maintenance/SuperbuildDownloadList.sh index 0b7de705ff6b7a056bf7a6ad13a228820ed24394..10ae48a2c62fb8776261b7a3b1125bcc790b6a0f 100755 --- a/Utilities/Maintenance/SuperbuildDownloadList.sh +++ b/Utilities/Maintenance/SuperbuildDownloadList.sh @@ -1,4 +1,4 @@ -#/bin/bash +#!/bin/bash export LC_ALL=C if [ $# -eq 2 ]; then @@ -9,9 +9,21 @@ echo 'Usage: '$0' <download_directory> <archive_output_directory>' exit 1 fi +WGET="wget -nv -q --show-progress --progress=bar" + SB_CMAKE_DIR_REL=$(dirname $0)/../../SuperBuild/CMake SB_CMAKE_DIR=$(readlink -f ${SB_CMAKE_DIR_REL}) +cd $(dirname $0)/../../ + +GIT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') + +#if a branch contains release-X.Y then xdk is taken from packages/xdk/OTB-X.Y +if [[ "$GIT_BRANCH" =~ release-* ]]; then + VERSION=$(echo ${GIT_BRANCH}| sed 's/.*release-//'| cut -d'-' -f 1) +else + VERSION="develop" +fi DOWNLOAD_LIST=$(grep -h -E "^[^#]*\"https?://.*(\.tar\.gz|\.tar\.bz2|\.tgz|\.tar\.xz|\.zip|export=download).*\"" ${SB_CMAKE_DIR}/*.cmake | grep -o -E "https?://[^\"]*" | sed "s/\/\(download\)\?$//" | sort | uniq) DOWNLOAD_NAMES= @@ -19,51 +31,46 @@ DOWNLOAD_NAMES= mkdir -p ${DOWNLOAD_DIR} cd ${DOWNLOAD_DIR} -echo "Start downloads..." +echo "Downloading files to ${DOWNLOAD_DIR}/" for url in ${DOWNLOAD_LIST}; do # clean log file - echo "" >download.log file_name=$(echo "${url}" | grep -o -E "[^\/]+$") docs_google=$(echo "${file_name}" | grep -F "export=download") if [ "${docs_google}" = "" ]; then - echo "Download ${file_name}..." - wget -N ${url} -o download.log + if [ -f "$file_name" ]; then + echo "$file_name exists, skipping" + fi; + $WGET -N ${url} + ret="$?" + if [ $ret -gt 0 -a $ret -ne 8 ]; then + echo "Download failed for URL: '${url}'. wget finished with exit status '$ret'." + exit 1; + fi else # look into the original file for a valid download name file_name=$(grep -h -A 3 -B 3 -F "${url}" ${SB_CMAKE_DIR}/*.cmake | grep -E "^[^#]*DOWNLOAD_NAME" | grep -o -E "[^ ]*\.(tar\.gz|tar\.bz2|tar\.xz|zip)" | uniq) if [ -z "$file_name" ]; then - echo "Can't find correct filename for url ${url} : skip download" + echo "Can't find correct filename for url ${url} : skip download" + exit 1; else - echo "Download ${file_name}..." - wget -O ${file_name} ${url} -o download.log + # echo "Download ${file_name}..." + $WGET ${url} -O ${file_name} fi fi - download_errors=$(grep "ERROR" download.log) - if [ "$download_errors" != "" ]; then - echo "[OTB] Error downloading ${file_name}" - echo "[OTB] Check your internet connectivity first!." - echo "[OTB] Check your firewall or proxy settings and then try again." - echo "[OTB] If you find that ${url} is unavailable," - echo " please file a bug immediately on bugs.orfeo-toolbox.org." - echo " " - cat download.log - exit 1 - else - if [ "$file_name" != "" ]; then + if [ "$file_name" != "" ]; then DOWNLOAD_NAMES="${DOWNLOAD_NAMES} ${file_name}" - fi fi -done -rm download.log +done -echo "Create archive..." +ARCHIVE_NAME="SuperBuild-archives-$VERSION" +echo "Creating archive ${OUTPUT_DIR}/$ARCHIVE_NAME.tar.bz2" cd ${OUTPUT_DIR} -tar -cjf SuperBuild-archives.tar.bz2 -C ${DOWNLOAD_DIR} ${DOWNLOAD_NAMES} +tar -cjf $ARCHIVE_NAME.tar.bz2 -C ${DOWNLOAD_DIR} ${DOWNLOAD_NAMES} -echo "Compute md5sum..." -md5sum SuperBuild-archives.tar.bz2 >SuperBuild-archives.md5 +echo "Saving md5sum to ${OUTPUT_DIR}/$ARCHIVE_NAME.md5" +md5sum $ARCHIVE_NAME.tar.bz2 > $ARCHIVE_NAME.md5