From e74de52544592a1475a36c003230913a0a58922c Mon Sep 17 00:00:00 2001 From: Nikolay Pronchev Date: Thu, 22 Aug 2024 13:32:39 +0300 Subject: [PATCH] Fix sed special characters handling --- timeweb-dns-api.sh | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/timeweb-dns-api.sh b/timeweb-dns-api.sh index 0d337a1..2edca18 100644 --- a/timeweb-dns-api.sh +++ b/timeweb-dns-api.sh @@ -131,7 +131,7 @@ _timeweb_split_acme_fqdn() { while TW_Domain=$( echo "$TW_Domains" | - sed -n 's/.*{\([^{]*"fqdn":"[^"]*"[^}]*\)}.*/\1/p' + sed -n 's/.*{[^{]*"fqdn":"\([^"]*\)"[^}]*}.*/\1/p' ) [ -n "$TW_Domain" ] && { @@ -139,7 +139,7 @@ _timeweb_split_acme_fqdn() { TW_Domains=$( echo "$TW_Domains" | - sed "s/{$TW_Domain}//" + sed 's/{\([^{]*"fqdn":"'"$TW_Domain"'"[^}]*\)}//' ) continue } @@ -168,7 +168,7 @@ _timeweb_get_dns_txt() { while Dns_Record=$( echo "$TW_Dns_Records" | - sed -n "s/.*{\([^\{]*{[^\{]*${Acme_Txt}[^\}]*}[^\}]*\)}.*/\1/p" + sed -n 's/.*{\([^{]*{[^{]*'"$Acme_Txt"'[^}]*}[^}]*\)}.*/\1/p' ) [ -n "$Dns_Record" ] && { @@ -176,7 +176,7 @@ _timeweb_get_dns_txt() { TW_Dns_Records=$( echo "$TW_Dns_Records" | - sed "s/{$Dns_Record}//" + sed 's/{\([^{]*{[^{]*'"$Acme_Txt"'[^}]*}[^}]*\)}//' ) continue } @@ -280,25 +280,20 @@ _timeweb_list_dns_records() { _timeweb_is_main_domain() { _debug "Checking if \"$1\" is the main domain of the ACME DNS-01 challenge FQDN." - TW_Domain_Fqdn=$( - echo "$1" | - sed 's/.*"fqdn":"\([^"]*\)".*/\1/' - ) - - [ -z "$TW_Domain_Fqdn" ] && { + [ -z "$1" ] && { _debug "Failed to extract FQDN. Skipping domain." return 1 } - ! echo ".$Acme_Fqdn" | grep -qi "\.$TW_Domain_Fqdn$" && { + ! echo ".$Acme_Fqdn" | grep -qi "\.$1$" && { _debug "Domain does not match the ACME DNS-01 challenge FQDN. Skipping domain." return 1 } - TW_Main_Domain=$TW_Domain_Fqdn + TW_Main_Domain=$1 TW_Subdomains=$( echo "$Acme_Fqdn" | - sed "s/\.*.\{${#TW_Domain_Fqdn}\}$//" + sed "s/\.*.\{${#1}\}$//" ) _debug "Matched domain. ACME DNS-01 challenge FQDN split as [$TW_Subdomains].[$TW_Main_Domain]." @@ -407,4 +402,4 @@ _timeweb_dns_txt_remove() { } _debug "DNS TXT record with ID \"$TW_Dns_Txt_Id\" has been removed." -} \ No newline at end of file +}