48 lines
747 B
Bash
Executable File
48 lines
747 B
Bash
Executable File
#!/bin/sh -e
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
TRY_CONTINUE=
|
|
TRY_REPEAT=
|
|
while true; do
|
|
case "$1" in
|
|
-c)
|
|
TRY_CONTINUE=1
|
|
shift
|
|
;;
|
|
-r)
|
|
TRY_REPEAT=1
|
|
shift
|
|
;;
|
|
-*)
|
|
echo "$0: unrecognized or invalid option $1" >&2
|
|
exit 1
|
|
;;
|
|
*)
|
|
break
|
|
;;
|
|
esac
|
|
done
|
|
|
|
url="$1"
|
|
dst="$2"
|
|
checksum="$3" # optional parameter
|
|
|
|
tmpdst=$(dirname "$dst")/_fetch-url_$(basename "$dst").$$
|
|
|
|
proto=${url%%://*}
|
|
|
|
. /usr/lib/fetch-url/$proto
|
|
|
|
protocol_fetch "$url" "$tmpdst" || exit $?
|
|
|
|
if [ "$checksum" ]; then
|
|
filesum=$(md5sum "$tmpdst" | cut -d' ' -f1)
|
|
if [ "$filesum" != "$checksum" ]; then
|
|
echo "ERROR: checksum mismatch on '$url' (sum is '$filesum', rather than the expected '$checksum')" >&2
|
|
exit 2
|
|
fi
|
|
fi
|
|
|
|
mv -f "$tmpdst" "$dst"
|