summaryrefslogtreecommitdiff
path: root/scripts/fetch-curl.sh
blob: a25c0582e580d68b1c6929167d28135a7eea3b07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
: ${SHA256SUM:=sha256sum}
: ${PAXREAD:=pax -r}

set -e

if [ "$#" != 1 ] ; then
	echo 'usage: fetch-curl.sh dir' >&2
	exit 2
fi

dir=$1
shift

cd "$dir"

if [ -e src ] ; then
	rm -rf src
fi

if ! $SHA256SUM -c sha256 2>/dev/null ; then
	curl -L -K url -O
	$SHA256SUM -c sha256
fi

while read -r checksum archive ; do
	case $archive in
	*.tar.gz|*.tgz)
		tool=zcat ;;
	*.tar.bz2)
		tool=bzcat ;;
	*.tar.xz)
		tool=xzcat ;;
	*)
		tool=
	esac
	if [ -n "$tool" ] ; then
		"$tool" "$archive" | $PAXREAD -s ',^[^/]*,src,' '*/*'
	fi
done <sha256

if [ -d patch ] ; then
	git apply -v --whitespace=nowarn --directory "$dir/src" patch/*
fi