@cryptotaxi247 / kubo / commits / 6b0781589

Refactor download, add httpie support

License: MIT Signed-off-by: Mateusz Naściszewski <matin1111@wp.pl>

mateon1 committed Feb 15, 2017 at 22:52 UTC 6b078158993466384187e7ea0b8a0090d378199d
1 file changed +25 -21
bin/dist_get
+25 -21
@@ -13,6 +13,26 @@ check_writeable() {
13 printf "" > "$1" && rm "$1"
14 }
15
16 +try_download() {
17 + url="$1"
18 + output="$2"
19 + command="$3"
20 + util_name=$(set -- $3; echo $1)
21 +
22 + if ! have_binary $util_name; then
23 + return 1
24 + fi
25 +
26 + printf '==> Using %s to download "%s" to "%s"\n' "$util_name" "$url" "$output"
27 + if eval "$command"; then
28 + echo "==> Download complete!"
29 + return
30 + else
31 + echo "error: couldn't download with $util_name ($?)"
32 + return 1
33 + fi
34 +}
35 +
36 download() {
37 dl_url="$1"
38 dl_output="$2"
@@ -23,27 +43,11 @@ download() {
43 die "download error: cannot write to $dl_output"
44 fi
45
26 - if have_binary wget; then
27 - printf '==> Using wget to download "%s" to "%s"\n' "$dl_url" "$dl_output"
28 - if wget "$dl_url" -O "$dl_output"; then
29 - echo "==> download complete!"
30 - return
31 - fi
32 - fi
33 - if have_binary curl; then
34 - printf '==> Using curl to download "%s" to "%s"\n' "$dl_url" "$dl_output"
35 - if curl --silent "$dl_url" > "$dl_output"; then
36 - echo "==> download complete!"
37 - return
38 - fi
39 - fi
40 - if have_binary fetch; then
41 - printf '==> Using fetch to download "%s" to "%s"\n' "$dl_url" "$dl_output"
42 - if fetch "$dl_url" -o "$dl_output"; then
43 - echo "==> download complete!"
44 - return
45 - fi
46 - fi
46 + try_download "$dl_url" "$dl_output" "wget '$dl_url' -O '$dl_output'" && return
47 + try_download "$dl_url" "$dl_output" "curl --silent '$dl_url' > '$dl_output'" && return
48 + try_download "$dl_url" "$dl_output" "fetch '$dl_url' -o '$dl_output'" && return
49 + try_download "$dl_url" "$dl_output" "http '$dl_url' > '$dl_output'" && return
50 +
51 die "Unable to download $dl_url. exiting."
52 }
53