source: autobuild/scripts/download @ 1462

Last change on this file since 1462 was 1462, checked in by moo, 14 months ago

fix concurrent download

  • Property svn:executable set to *
File size: 1.1 KB
RevLine 
[905]1#!/bin/sh
2. scripts/common
3
4download() {
5    local file="$1"
6    local url="$2"
7    local ret
8    if [[ -f $file ]]; then
9        return 0
10    fi
[1157]11    begin "from $url"; {
[905]12        if type aria2c >/dev/null 2>/dev/null; then
13            (
14            builtin cd "$(dirname "$file")"
[1462]15            aria2c -m 0 -k 1M -x 10 -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    };
[1157]27    [[ $ret -eq 0 ]] && end || end "not found"
[905]28   
29    return $ret
30}
31
32cleanup() {
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
[1157]42download_x() {
43    local filename=$1
44    shift
[905]45
[1157]46    local url
47    local ret=1
48    begin "Downloading $filename"; {
49        while [ $# -gt 0 ]; do
50            url=$1
51            shift
52            if download "$sourceDir/$filename" $url; then
53                ret=0
54                break
55            fi
56        done
57    };
58    [[ $ret -eq 0 ]] && end "downloaded" || end "not found"
59    return $ret
[905]60}
61
62trap cleanup exit
63
[1157]64phpFiles_foreach download_x
Note: See TracBrowser for help on using the repository browser.