aboutsummaryrefslogtreecommitdiff
path: root/src/txtrec-del.sh
diff options
context:
space:
mode:
authorDavid Timber <mieabby@gmail.com>2021-08-09 21:54:10 +1000
committerDavid Timber <mieabby@gmail.com>2021-08-09 21:54:10 +1000
commitc008231406e43f314a19a3d34c1218d06815dc8a (patch)
tree3b773cbd956d7f0e76dfb7f4ee52730d2f4fb1ab /src/txtrec-del.sh
parenteea0a9fbbf1aff1eac1f17914d5c116de98e1d93 (diff)
Impl proone-htbtclient txtrec mode ...
* Relocate /src/data/proto/txtrec-*.sh to /src
Diffstat (limited to 'src/txtrec-del.sh')
-rwxr-xr-xsrc/txtrec-del.sh64
1 files changed, 64 insertions, 0 deletions
diff --git a/src/txtrec-del.sh b/src/txtrec-del.sh
new file mode 100755
index 0000000..7ecf253
--- /dev/null
+++ b/src/txtrec-del.sh
@@ -0,0 +1,64 @@
+#!/bin/bash
+ARR_HOOKS="
+ aws
+"
+
+if [ $# -lt 2 ]; then
+ echo "Usage: $0 <head rec> <hook> <zone id>
+Hooks:" >&2
+ for h in $ARR_HOOKS; do
+ echo -e "\t$h"
+ done
+
+ exit 2
+fi
+
+HEAD_REC="$1"
+HOOK="$2"
+ZONE_ID="$3"
+
+aws_param () {
+ cat << EOF
+{
+ "Changes": [
+ {
+ "Action": "DELETE",
+ "ResourceRecordSet": $1
+ }
+ ]
+}
+EOF
+}
+
+hook_aws () {
+ local tmpfile=`mktemp --tmpdir txtrec-del.XXXXXXXXXX`
+
+ aws route53 list-resource-record-sets\
+ --hosted-zone-id "$ZONE_ID" > "$tmpfile"
+ local nb_rec=`jq ".ResourceRecordSets | length" "$tmpfile"`
+ local escaped_name=$(echo "$HEAD_REC" | sed -e s/\\./\\\\./g)
+
+ for (( i = 0; i < nb_rec; i += 1 )); do
+ local rec=$(jq ".ResourceRecordSets[$i]" "$tmpfile")
+ jq ".ResourceRecordSets[$i].Name" "$tmpfile" |
+ egrep -i "\"([0-9a-f]+\.)?$escaped_name\.?\""
+ if [ $? -eq 0 ]; then
+ aws route53 change-resource-record-sets\
+ --hosted-zone-id "$ZONE_ID"\
+ --change-batch "$(aws_param "$rec")"
+ fi
+ done
+
+ rm -f "$tmpfile"
+}
+
+"hook_$HOOK" "$HEAD_REC"
+
+i=0
+while true; do
+ "hook_$HOOK" $i."$HEAD_REC"
+ if [ $? -ne 0 ]; then
+ break
+ fi
+ let i=i+1
+done