#!/bin/bash
# Called by lego: dd_exec.sh <present|cleanup> <FQDN> <value>
ACTION="$1"; FQDN="$2"; VALUE="$3"
TOKEN_FILE="/work/exploit/certcheck/duck_token.txt"
DOM="exnessvpn74efaadb"
LOG=/work/exploit/certcheck/dd_exec.log
echo "[$(date)] ACTION=$ACTION FQDN=$FQDN VALUE=${VALUE:0:40}" >> $LOG
if [ "$ACTION" = "present" ]; then
  if [ -f "$TOKEN_FILE" ]; then
    TOK=$(cat $TOKEN_FILE)
    # DuckDNS txt param: set _acme-challenge record
    RESP=$(curl -s "https://www.duckdns.org/update?domains=${DOM}&token=${TOK}&txt=${VALUE}&verbose=true")
    echo "  DUCKDNS RESP: $RESP" >> $LOG
    case "$RESP" in
      OK*|UPDATED*) echo "  -> success" >> $LOG; exit 0;;
      *) echo "  -> FAIL: $RESP" >> $LOG; exit 1;;
    esac
  else
    echo "  NO TOKEN FILE - cannot set" >> $LOG; exit 1
  fi
elif [ "$ACTION" = "cleanup" ]; then
  if [ -f "$TOKEN_FILE" ]; then
    TOK=$(cat $TOKEN_FILE)
    curl -s "https://www.duckdns.org/update?domains=${DOM}&token=${TOK}&clear=true&verbose=true" >> $LOG 2>&1
  fi
  exit 0
fi
exit 0
