Follow-up from this question using @Toby Speight's answer:
The primary concern is jq
improvement/optimization, but please detail any others.
#!/bin/sh
set -eu
sources=$(mktemp)
trap 'rm "$sources"' EXIT
curl -s -o "$sources" https://raw.githubusercontent.com/T145/packages/master/net/adblock/files/adblock.sources
for key in $(jq -r 'keys[]' "$sources")
do
case $key in
gaming | oisd_basic )
# Ignore these lists
;;
* )
url=$(jq -r ".$key.url" "$sources")
rule=$(jq -r ".$key.rule" "$sources")
curl -s "$url" |
case $url in
*.tar.gz) tar -xOzf - ;;
*) cat ;;
esac |
gawk --sandbox -- "$rule"
esac
done |
sed -e 's/\r//g' -e 's/^/0.0.0.0 /' | sort -u > the_blacklist.txt
# use sort over gawk to merge sort multiple temp files instead of using up limited memory