dehydrated-route53-hook-script icon indicating copy to clipboard operation
dehydrated-route53-hook-script copied to clipboard

Doesnt work with private zones

Open patrickdk77 opened this issue 5 years ago • 2 comments

simple modifications to work with private zones.

local ZONELIST=$(cli53 list -format json | jq --raw-output '.[] | select(.Config.PrivateZone == false) | .Name, .Id' | sed -e 's/.$//' | xargs echo -n | sed -e 's/ /hostedzone//|/g')

local TESTDOMAIN="${DOMAIN}" local DOM="" local ID=""

while [[ -n "$TESTDOMAIN" ]]; do for zone in $ZONELIST; do ID="${zone##|}" DOM="${zone%|}" if [[ "$DOM" == "$TESTDOMAIN" ]]; then echo "$ID" return 0 fi done TESTDOMAIN=$(get_base_name "$TESTDOMAIN") done

patrickdk77 avatar Mar 21 '20 02:03 patrickdk77

I think the text formatting ate some important punctuation. This is what worked for me:

function find_zone() {
  local DOMAIN="${1}"

  local ZONELIST=$(cli53 list -format json | jq --raw-output '.[] | select(.Config.PrivateZone == false) | .Name, .Id' | sed -e 's/\.$//' | xargs echo -n | sed -e 's# /hostedzone/#|#g')

  local TESTDOMAIN="${DOMAIN}"
  local DOM=""
  local ID=""

  while [[ -n "$TESTDOMAIN" ]]; do
    for zone in $ZONELIST; do
      ID="${zone##*|}"
      DOM="${zone%|*}"
      if [[ "$DOM" == "$TESTDOMAIN" ]]; then
        echo "$ID"
        return 0
      fi
    done
    TESTDOMAIN=$(get_base_name "$TESTDOMAIN")
  done

  return 1
}

I also had to add export PATH="$PATH:/usr/local/bin" as that's where cli53 is.

svenedge avatar Aug 25 '23 14:08 svenedge

Looks to have ate the *'s

Quoting Sven Edge @.***>:

I think the text formatting ate some important punctuation. This is
what worked for me:

function find_zone() {
  local DOMAIN="${1}"

  local ZONELIST=$(cli53 list -format json | jq --raw-output '.[] |  
select(.Config.PrivateZone == false) | .Name, .Id' | sed -e  
's/\.$//' | xargs echo -n | sed -e 's# /hostedzone/#|#g')

  local TESTDOMAIN="${DOMAIN}"
  local DOM=""
  local ID=""

  while [[ -n "$TESTDOMAIN" ]]; do
    for zone in $ZONELIST; do
      ID="${zone##*|}"
      DOM="${zone%|*}"
      if [[ "$DOM" == "$TESTDOMAIN" ]]; then
        echo "$ID"
        return 0
      fi
    done
    TESTDOMAIN=$(get_base_name "$TESTDOMAIN")
  done

  return 1
}

I also had to add export PATH="$PATH:/usr/local/bin" as that's
where cli53 is.

-- Reply to this email directly or view it on GitHub: https://github.com/whereisaaron/dehydrated-route53-hook-script/issues/5#issuecomment-1693414096 You are receiving this because you authored the thread.

Message ID:
@.***>

patrickdk77 avatar Aug 25 '23 14:08 patrickdk77