diff --git a/Utilities/Maintenance/SuperbuildDownloadList.sh b/Utilities/Maintenance/SuperbuildDownloadList.sh index da5c4cb21b1ef11fc29c35284ac361b4894d7827..382bc58ccaf4ff790407ba07981484085e0d59cd 100755 --- a/Utilities/Maintenance/SuperbuildDownloadList.sh +++ b/Utilities/Maintenance/SuperbuildDownloadList.sh @@ -46,30 +46,33 @@ else VERSION="develop" fi CMAKE_FILES=$(find "${SB_CMAKE_DIR}" -maxdepth 1 -type f -name "External_*") -DOWNLOAD_LIST=$(grep -h -E '^[^#]*\"(ftp|http|https)://.*(\.tar\.gz|\.tar\.bz2|\.tgz|\.tar\.xz|\.zip|export=download).*\"' ${CMAKE_FILES} | - grep -o -E '(ftp|http|https)://[^\"]*' | sort | uniq) DOWNLOAD_NAMES= -#echo "DOWNLOAD_LIST=$DOWNLOAD_LIST" - mkdir -p "${DOWNLOAD_DIR}" cd "${DOWNLOAD_DIR}" || echo "cannot cd to DOWNLOAD_DIR" echo "Downloading files to ${DOWNLOAD_DIR}/" -for url in ${DOWNLOAD_LIST}; do - file_name=$(echo "${url}" | grep -o -E '[^\/]+$') - $WGET -N "${url}" - ret="$?" - if [ $ret -gt 0 ] && [ $ret -ne 8 ]; then - echo "Download failed for URL: '${url}'. wget finished with exit status '$ret'." - exit 1; - fi - - if [ "$file_name" != "" ]; then - DOWNLOAD_NAMES="${DOWNLOAD_NAMES} ${file_name}" - else - echo "invalid filename for url=${url}" && exit 1; - fi +for cmake in ${CMAKE_FILES}; do + download_links=$(grep -h -E '^[^#]*\"(ftp|http|https)://.*(\.tar\.gz|\.tar\.bz2|\.tgz|\.tar\.xz|\.zip|export=download).*\"' ${cmake} | + grep -o -E '(ftp|http|https)://[^\"]*' | sort | uniq) + for url in ${download_links}; do + file_name=$(echo "${url}" | grep -o -E '[^\/]+$') + if [ -z "$file_name" ]; then + echo "invalid filename for url=${url}" && exit 1; + fi + download_name=$(grep -E -A 3 -B 3 "(ftp|http|https).+$file_name" ${cmake} | grep -E -o 'DOWNLOAD_NAME .+' | cut -d ' ' -f 2-) + $WGET -N "${url}" + ret="$?" + if [ $ret -gt 0 ] && [ $ret -ne 8 ]; then + echo "Download failed for URL: '${url}'. wget finished with exit status '$ret'." + exit 1; + fi + if [ -n "$download_name" ]; then + mv $file_name $download_name + file_name=$download_name + fi + DOWNLOAD_NAMES="${DOWNLOAD_NAMES} ${file_name}" + done done ARCHIVE_NAME="SuperBuild-archives-$VERSION"