aboutsummaryrefslogtreecommitdiffstats
path: root/fetch.sh
blob: b071b2e47a5310683a2676159da71b33832c00b4 (plain) (blame)
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
#!/bin/bash
set -e
USER_AGENT="WireGuard-AndroidROMBuild/0.2 ($(uname -a))"

exec 9>.wireguard-fetch-lock
flock -n 9 || exit 0

[[ $(( $(date +%s) - $(stat -c %Y "net/wireguard/.check" 2>/dev/null || echo 0) )) -gt 86400 ]] || exit 0
[[ $(( $(date +%s) - $(stat -c %Y "net/wireguard/.noconnectivity" 2>/dev/null || echo 0) )) -gt 5 ]] || exit 0
ping -w 2 -4 -c 1 build.wireguard.com >/dev/null 2>&1 || { touch "net/wireguard/.noconnectivity"; echo "No internet detected, skipping WireGuard update." >&2; exit 0; }

while read -r distro package version _; do
	if [[ $distro == upstream && $package == kmodtools ]]; then
		VERSION="$version"
		break
	fi
done < <(curl -A "$USER_AGENT" -LSs --connect-timeout 30 https://build.wireguard.com/distros.txt)

[[ -n $VERSION ]]

if [[ -f net/wireguard/version.h && $(< net/wireguard/version.h) == *$VERSION* ]]; then
	touch net/wireguard/.check
	exit 0
fi

rm -rf net/wireguard
mkdir -p net/wireguard
curl -A "$USER_AGENT" -LsS --connect-timeout 30 "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-$VERSION.tar.xz" | tar -C "net/wireguard" -xJf - --strip-components=2 "WireGuard-$VERSION/src"
sed -i 's/tristate/bool/;s/default m/default y/;' net/wireguard/Kconfig
touch net/wireguard/.check