From e459e1a512f82f8b90ba68991b5fc098f7a5d7c3 Mon Sep 17 00:00:00 2001 From: Matthew Saunders Brown Date: Tue, 6 Feb 2024 10:33:18 -0800 Subject: [PATCH] cvs export option --- bin/pdns-zone-exp.sh | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/bin/pdns-zone-exp.sh b/bin/pdns-zone-exp.sh index 3750891..43fdb5a 100755 --- a/bin/pdns-zone-exp.sh +++ b/bin/pdns-zone-exp.sh @@ -18,6 +18,7 @@ help() echo "" echo " -h Print this help." echo " -z Zone to export." + echo " -c Output in csv format instead of columns." } pdns:getoptions "$@" @@ -29,19 +30,30 @@ if [[ -z $zone ]]; then fi tmpfile=$(mktemp) +echo "name,ttl,class,type,value" > $tmpfile.csv # export zone and check http status zone_status=$(/usr/bin/curl --silent --output "$tmpfile" --write-out "%{http_code}" -H "X-API-Key: $api_key" $api_base_url/zones/$zone/export) if [[ $zone_status = 200 ]]; then - # return zone level records - sed -e 's/\t/|/g' $tmpfile|column -t -s \| |grep ^$zone. - # return subdomain records - sed -e 's/\t/|/g' $tmpfile|column -t -s \| |grep -v ^$zone. + + # convert tabs to commas + sed -i 's/\t/,/g' $tmpfile + # zone level records + grep ^$zone. $tmpfile >> $tmpfile.csv + # subdomain records + grep -v ^$zone. $tmpfile >> $tmpfile.csv + + if [[ $csv ]]; then + cat $tmpfile.csv + else + column -t -s , $tmpfile.csv + fi elif [[ $zone_status = 404 ]]; then echo 404 Not Found, $zone does not exist else echo Unexecpted http response checking for existence of zone $zone: $zone_status fi +rm $tmpfile.csv rm $tmpfile