summaryrefslogtreecommitdiffstats
path: root/retiolum/bin/supernode-update-hosts-and-hup
blob: b1ce3489faa45fa55d3409f5a77f476541fa2ed6 (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
#! /bin/sh
set -euf

cd /etc/tinc/retiolum/hosts

painload="$(dirname "$(readlink -f "$0")")/../.."

temp1="`mktemp`"
temp2="`mktemp`"
trap "rm -f $temp1 $temp2" EXIT INT TERM

old_commit="`cat .commit 2>/dev/null || :`"

curl -fsS "https://github.com/krebscode/painload/tree/master/retiolum/hosts" |
    "$painload/util/bin/hrefs" |
    grep '^/krebscode/painload/blob/' |
    grep -v "/blob/$old_commit/" >$temp1

new_commit=`sed 's|^/krebscode/painload/blob/\([^/]*\)/.*|\1|;q' $temp1`

sed '
  s|^/krebscode/painload/blob/[^/]*/retiolum/hosts/\([^/]*\)$|\1|
' $temp1 > $temp2

xargs rm -v -f <$temp2

sed "
  s|^.*$|https://raw.github.com/krebscode/painload/$new_commit/retiolum/hosts/&|
" $temp2 > $temp1

wget -qi- < $temp1

echo $new_commit > .commit

pkill -HUP tincd