提交 6b078158 作者: mateon1

Refactor download, add httpie support

License: MIT
Signed-off-by: 's avatarMateusz Naściszewski <matin1111@wp.pl>
上级 f21499f4
......@@ -13,6 +13,26 @@ check_writeable() {
printf "" > "$1" && rm "$1"
}
try_download() {
url="$1"
output="$2"
command="$3"
util_name=$(set -- $3; echo $1)
if ! have_binary $util_name; then
return 1
fi
printf '==> Using %s to download "%s" to "%s"\n' "$util_name" "$url" "$output"
if eval "$command"; then
echo "==> Download complete!"
return
else
echo "error: couldn't download with $util_name ($?)"
return 1
fi
}
download() {
dl_url="$1"
dl_output="$2"
......@@ -23,27 +43,11 @@ download() {
die "download error: cannot write to $dl_output"
fi
if have_binary wget; then
printf '==> Using wget to download "%s" to "%s"\n' "$dl_url" "$dl_output"
if wget "$dl_url" -O "$dl_output"; then
echo "==> download complete!"
return
fi
fi
if have_binary curl; then
printf '==> Using curl to download "%s" to "%s"\n' "$dl_url" "$dl_output"
if curl --silent "$dl_url" > "$dl_output"; then
echo "==> download complete!"
return
fi
fi
if have_binary fetch; then
printf '==> Using fetch to download "%s" to "%s"\n' "$dl_url" "$dl_output"
if fetch "$dl_url" -o "$dl_output"; then
echo "==> download complete!"
return
fi
fi
try_download "$dl_url" "$dl_output" "wget '$dl_url' -O '$dl_output'" && return
try_download "$dl_url" "$dl_output" "curl --silent '$dl_url' > '$dl_output'" && return
try_download "$dl_url" "$dl_output" "fetch '$dl_url' -o '$dl_output'" && return
try_download "$dl_url" "$dl_output" "http '$dl_url' > '$dl_output'" && return
die "Unable to download $dl_url. exiting."
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论