#!/bin/sh . scripts/common download() { local file="$1" local url="$2" local ret if [[ -f $file ]]; then return 0 fi begin "Downloading $url to $file"; { if type aria2c >/dev/null 2>/dev/null; then ( builtin cd "$(dirname "$file")" aria2c -j 10 -s 10 -o "$(basename "$file.tmp")" "$url" && mv "$file.tmp" "$file" ) ret=$? elif type wget >/dev/null 2>/dev/null; then wget -c -O "$file.tmp" "$url" && mv "$file.tmp" "$file" ret=$? else curl -C - -o "$file.tmp" "$url" && mv "$file.tmp" "$file" ret=$? fi rm -f "$file.tmp" }; [[ -z $ret ]] && end || end "not found" return $ret } cleanup() { local file for file in "$sourceDir/"*.bz2 "$sourceDir/"*.zip; do if [[ -f $file && ! -s $file ]]; then rm -f "$file" fi done exit } downloadPhp() { local filename local arch local compiler local nts local downloaded local type local snapVersion case "$phpVersion" in *-dev-*) type="snaps" snapVersion=-${phpVersion##*-} phpVersion=${phpVersion%-*} filename="php$phpVersion$snapVersion.tar.bz2" filename=${filename/0.-dev-/-} download "$sourceDir/php-$phpVersion$snapVersion.tar.bz2" "http://snaps.php.net/$filename" ;; *) type="releases" filename="php-$phpVersion.tar.bz2" target="$sourceDir/$filename" download "$target" "http://$mirror/get/$filename/from/$mirror/mirror" \ || download "$target" "http://museum.php.net/php5/$filename" ;; esac downloaded= for nts in '' '-nts'; do case "$phpVersion" in 4.*|5.0.*|5.1.*) ;; *) for compiler in "${compilers[@]}"; do for arch in "${arches[@]}"; do filename=php-$phpVersion$nts-Win32-$compiler-$arch$snapVersion.zip download "$sourceDir/$filename" "http://windows.php.net/downloads/$type/$filename" if [[ -s "$sourceDir/$filename" ]]; then downloaded=1 fi done done esac done if [[ -z $downloaded ]]; then filename=php-$phpVersion-Win32.zip target="$sourceDir/$filename" download "$target" "http://$mirror/get/$filename/from/$mirror/mirror" \ || download "$target" "http://museum.php.net/php5/$filename" fi } trap cleanup exit case $# in 0) foreachPhpVersion downloadPhp ;; 1) loadPhpVersion "$1" downloadPhp ;; esac exit 0