diff options
| author | Marc Vertes <mvertes@free.fr> | 2022-02-03 14:39:21 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2022-02-03 14:39:21 +0100 |
| commit | 70375b4962152133c0423115427d7eaa006822d6 (patch) | |
| tree | d5608c6638f202ff17566fce60b5460da1d26304 /bin/update_hosts | |
| parent | 053556962bb2d29ac76bcca51cabd1df238f80e3 (diff) | |
| parent | e200c8d78ca1d3388c25c1cef8892b1dd015bbf7 (diff) | |
update
Diffstat (limited to 'bin/update_hosts')
| -rwxr-xr-x | bin/update_hosts | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/update_hosts b/bin/update_hosts new file mode 100755 index 0000000..40ec470 --- /dev/null +++ b/bin/update_hosts @@ -0,0 +1,26 @@ +#!/bin/sh -e + +# Update /etc/hosts with a well curated blacklist of malware, ads, porn, etc. +# Custom hosts are preserved. + +[ "$USER" = root ] || exec sudo "$0" "$@" + +echo 'Checking from https://github.com/StevenBlack/hosts:' +lsd=$(curl -s 'https://api.github.com/repos/StevenBlack/hosts/commits?path=hosts&page=1&per_page=1' | jq -r '.[0].commit.committer.date') +echo "last source update: $(date -j -f "%FT%TZ" "$lsd")" +echo "last local update: $(date -r /etc/hosts)" +[ $(date -j -f "%FT%TZ" "$lsd" +%s) -lt $(date -r /etc/hosts +%s) ] && echo 'Nothing to do' && exit + +cd /etc +cp -p hosts hosts.old +hosts=$(awk '/^# Custom host/, /^# End of custom host/' hosts.old) +curl -s 'https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts' | awk ' + BEGIN { hosts = ARGV[1]; ARGV[1] = "" } + /^# Custom host/ { print hosts; next } + /^# End of custom host/ { next } + { print } +' "$hosts" > hosts.new + +mv hosts.new hosts +[ "$(uname -s)" != Darwin ] || { dscacheutil -flushcache; killall -HUP mDNSResponder; } +diff -u /etc/hosts.old /etc/hosts | diffstat |
