mirror of
https://github.com/benbusby/farside.git
synced 2025-03-23 07:16:36 -04:00

The cloudflare filter, when performed as part of the github action workflow, doesn't seem to work nearly as reliably when run on an actual machine. The farside server will instead run the un-cloudflare script whenever it pulls in new changes to services-full.json, which should be a much more reliable approach to filtering out cloudflare instances.
28 lines
847 B
Bash
Executable File
28 lines
847 B
Bash
Executable File
#!/bin/bash
|
|
# Remove cloudflare instances from services-full.json
|
|
|
|
rm -f out.json
|
|
file="services-full.json"
|
|
|
|
while read -r line; do
|
|
if [[ "$line" == "\"https://"* ]]; then
|
|
domain=$(echo "$line" | sed -e "s/^\"https:\/\///" -e "s/\",//" -e "s/\"//")
|
|
ns=$(dig ns "$domain" || true)
|
|
if [[ "$ns" == *"cloudflare"* ]]; then
|
|
echo "\"$domain\" using cloudflare, skipping..."
|
|
elif [[ "$ns" != *"NOERROR"* ]]; then
|
|
echo "Unable to verify records for \"$domain\", skipping..."
|
|
else
|
|
echo "$line" >> out.json
|
|
fi
|
|
else
|
|
echo "$line" >> out.json
|
|
fi
|
|
done <$file
|
|
|
|
# Remove any trailing commas from new instance lists
|
|
sed -i -e ':begin' -e '$!N' -e 's/,\n]/\n]/g' -e 'tbegin' -e 'P' -e 'D' out.json
|
|
|
|
cat out.json | jq --indent 2 . > services.json
|
|
rm -f out.json
|