| [905] | 1 | #!/bin/sh |
|---|
| 2 | . scripts/common |
|---|
| 3 | |
|---|
| 4 | download() { |
|---|
| 5 | local file="$1" |
|---|
| 6 | local url="$2" |
|---|
| 7 | local ret |
|---|
| 8 | if [[ -f $file ]]; then |
|---|
| 9 | return 0 |
|---|
| 10 | fi |
|---|
| 11 | begin "Downloading $url to $file"; { |
|---|
| 12 | if type aria2c >/dev/null 2>/dev/null; then |
|---|
| 13 | ( |
|---|
| 14 | builtin cd "$(dirname "$file")" |
|---|
| [913] | 15 | aria2c -j 10 -s 10 -o "$(basename "$file.tmp")" "$url" && mv "$file.tmp" "$file" |
|---|
| [905] | 16 | ) |
|---|
| 17 | ret=$? |
|---|
| 18 | elif type wget >/dev/null 2>/dev/null; then |
|---|
| 19 | wget -c -O "$file.tmp" "$url" && mv "$file.tmp" "$file" |
|---|
| 20 | ret=$? |
|---|
| 21 | else |
|---|
| 22 | curl -C - -o "$file.tmp" "$url" && mv "$file.tmp" "$file" |
|---|
| 23 | ret=$? |
|---|
| 24 | fi |
|---|
| 25 | rm -f "$file.tmp" |
|---|
| 26 | }; |
|---|
| 27 | [[ -z $ret ]] && end || end "not found" |
|---|
| 28 | |
|---|
| 29 | return $ret |
|---|
| 30 | } |
|---|
| 31 | |
|---|
| 32 | cleanup() { |
|---|
| 33 | local file |
|---|
| 34 | for file in "$sourceDir/"*.bz2 "$sourceDir/"*.zip; do |
|---|
| 35 | if [[ -f $file && ! -s $file ]]; then |
|---|
| 36 | rm -f "$file" |
|---|
| 37 | fi |
|---|
| 38 | done |
|---|
| 39 | exit |
|---|
| 40 | } |
|---|
| 41 | |
|---|
| 42 | downloadPhp() { |
|---|
| 43 | local filename |
|---|
| 44 | local arch |
|---|
| 45 | local compiler |
|---|
| 46 | local nts |
|---|
| 47 | local downloaded |
|---|
| 48 | local type |
|---|
| 49 | local snapVersion |
|---|
| 50 | |
|---|
| 51 | case "$phpVersion" in |
|---|
| 52 | *-dev-*) |
|---|
| 53 | type="snaps" |
|---|
| 54 | snapVersion=-${phpVersion##*-} |
|---|
| 55 | phpVersion=${phpVersion%-*} |
|---|
| 56 | filename="php$phpVersion$snapVersion.tar.bz2" |
|---|
| 57 | filename=${filename/0.-dev-/-} |
|---|
| 58 | download "$sourceDir/php-$phpVersion$snapVersion.tar.bz2" "http://snaps.php.net/$filename" |
|---|
| 59 | ;; |
|---|
| 60 | *) |
|---|
| 61 | type="releases" |
|---|
| 62 | filename="php-$phpVersion.tar.bz2" |
|---|
| 63 | target="$sourceDir/$filename" |
|---|
| 64 | download "$target" "http://$mirror/get/$filename/from/$mirror/mirror" \ |
|---|
| 65 | || download "$target" "http://museum.php.net/php5/$filename" |
|---|
| 66 | ;; |
|---|
| 67 | esac |
|---|
| 68 | |
|---|
| 69 | downloaded= |
|---|
| 70 | for nts in '' '-nts'; do |
|---|
| 71 | case "$phpVersion" in |
|---|
| 72 | 4.*|5.0.*|5.1.*) |
|---|
| 73 | ;; |
|---|
| 74 | *) |
|---|
| 75 | for compiler in "${compilers[@]}"; do |
|---|
| 76 | for arch in "${arches[@]}"; do |
|---|
| 77 | filename=php-$phpVersion$nts-Win32-$compiler-$arch$snapVersion.zip |
|---|
| 78 | download "$sourceDir/$filename" "http://windows.php.net/downloads/$type/$filename" |
|---|
| 79 | if [[ -s "$sourceDir/$filename" ]]; then |
|---|
| 80 | downloaded=1 |
|---|
| 81 | fi |
|---|
| 82 | done |
|---|
| 83 | done |
|---|
| 84 | esac |
|---|
| 85 | done |
|---|
| 86 | if [[ -z $downloaded ]]; then |
|---|
| 87 | filename=php-$phpVersion-Win32.zip |
|---|
| 88 | target="$sourceDir/$filename" |
|---|
| 89 | download "$target" "http://$mirror/get/$filename/from/$mirror/mirror" \ |
|---|
| 90 | || download "$target" "http://museum.php.net/php5/$filename" |
|---|
| 91 | fi |
|---|
| 92 | } |
|---|
| 93 | |
|---|
| 94 | trap cleanup exit |
|---|
| 95 | |
|---|
| 96 | case $# in |
|---|
| 97 | 0) |
|---|
| 98 | foreachPhpVersion downloadPhp |
|---|
| 99 | ;; |
|---|
| 100 | 1) |
|---|
| 101 | loadPhpVersion "$1" |
|---|
| 102 | downloadPhp |
|---|
| 103 | ;; |
|---|
| 104 | esac |
|---|
| 105 | |
|---|
| 106 | exit 0 |
|---|