#! /bin/sh # # @oxberg we do put this into crontab: # * * * * * /supernode-update-hosts-and-hup # set -euf cd /etc/tinc/retiolum/hosts temp1="`mktemp`" temp2="`mktemp`" trap "rm -f $temp1 $temp2" EXIT INT TERM old_commit="`cat .commit 2>/dev/null || :`" _hrefs() { sed -n 's/href="\([^"]\+\)"/\n&\n/gp' | sed -n 's/^href="\([^"]\+\)"$/\1/p'; } if curl -fsS \ "https://github.com/krebscode/painload/tree/master/retiolum/hosts" | _hrefs | grep '^/krebscode/painload/blob/' | grep -v "/blob/$old_commit/" >$temp1 then 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 fi