← back to Dw Domain Viewer
scripts/refresh-domains.sh
22 lines
#!/bin/bash
# Re-pull the *.designerwallcoverings.com record list from Cloudflare into domains.json.
# Run after adding/removing a subdomain in the CF zone. $0 (local + CF API reads).
set -euo pipefail
export $(grep -E "^CLOUDFLARE_API_TOKEN" ~/Projects/secrets-manager/.env | xargs)
ZONE=$(curl -s "https://api.cloudflare.com/client/v4/zones?name=designerwallcoverings.com" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | python3 -c "import json,sys; print(json.load(sys.stdin)['result'][0]['id'])")
curl -s "https://api.cloudflare.com/client/v4/zones/$ZONE/dns_records?per_page=200" \
-H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" | python3 -c "
import json, sys, os
d = json.load(sys.stdin)
names = sorted(set(r['name'] for r in d['result'] if r['type'] in ('A', 'AAAA', 'CNAME')))
drop = {'_domainconnect.designerwallcoverings.com',
'workforce.agentabrams.com.designerwallcoverings.com',
'www.designerwallcoverings.com'}
names = [n for n in names if n not in drop]
names.sort(key=lambda n: (n != 'designerwallcoverings.com', n))
out = os.path.expanduser('~/Projects/dw-domain-viewer/domains.json')
json.dump(names, open(out, 'w'), indent=1)
print(len(names), 'domains written to', out)
"