From 0a90e4c305827259373ff14a0c0fa35df94a29b2 Mon Sep 17 00:00:00 2001 From: Phil Date: Tue, 7 Oct 2025 08:30:46 +0100 Subject: [PATCH] Updated the Cloudflare script in Export_DNS so it can now search for multiple sites is different env files. --- .../{config.conf => envs/site1.conf} | 1 + .../Cloudflare/export_dns_cloudflare.sh | 69 ++++++++++++------- 2 files changed, 47 insertions(+), 23 deletions(-) rename Export_DNS/Cloudflare/{config.conf => envs/site1.conf} (75%) diff --git a/Export_DNS/Cloudflare/config.conf b/Export_DNS/Cloudflare/envs/site1.conf similarity index 75% rename from Export_DNS/Cloudflare/config.conf rename to Export_DNS/Cloudflare/envs/site1.conf index 6fb81d4..e1894cd 100644 --- a/Export_DNS/Cloudflare/config.conf +++ b/Export_DNS/Cloudflare/envs/site1.conf @@ -1,2 +1,3 @@ # Cloudflare API Token (must have Zone:Read + DNS:Read permissions) +# Example env file (envs/site1.env) CLOUDFLARE_API_TOKEN=your_api_token_here diff --git a/Export_DNS/Cloudflare/export_dns_cloudflare.sh b/Export_DNS/Cloudflare/export_dns_cloudflare.sh index f7b5955..8c570ef 100755 --- a/Export_DNS/Cloudflare/export_dns_cloudflare.sh +++ b/Export_DNS/Cloudflare/export_dns_cloudflare.sh @@ -1,38 +1,61 @@ #!/bin/bash set -euo pipefail -# Load config -source config.conf - +ENV_DIR="./envs" EXPORT_FOLDER="export" mkdir -p "$EXPORT_FOLDER" -# Step 1: Fetch all zones from Cloudflare -echo "Fetching zone list from Cloudflare..." -zones_json=$(curl -s https://api.cloudflare.com/client/v4/zones \ - -H "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \ - -H "Content-Type: application/json") +# Find all .env files in the ENV_DIR +env_files=("$ENV_DIR"/*.env) -# Step 2: Parse zones (needs jq) -zone_count=$(echo "$zones_json" | jq '.result | length') -echo "Found $zone_count zones." +if [ ${#env_files[@]} -eq 0 ]; then + echo "❌ No .env files found in $ENV_DIR" + exit 1 +fi -# Step 3: Loop through zones -for ((i=0; i Saved to $OUTPUT_FILE" + # Step 2: Parse zones (needs jq) + zone_count=$(echo "$zones_json" | jq '.result | length') + echo "Found $zone_count zones." + + # Step 3: Loop through zones + for ((i=0; i Saved to $OUTPUT_FILE" + done + + echo "✅ Export complete for $env_file" + echo "" done -echo "✅ All exports complete. Files are in the '$EXPORT_FOLDER' folder." +echo "🎉 All exports finished. Files are in the '$EXPORT_FOLDER' folder."