|
| 1 | +#!/usr/bin/env sh |
| 2 | + |
| 3 | +# Official DNS API for Nanelo.com |
| 4 | + |
| 5 | +# Provide the required API Key like this: |
| 6 | +# NANELO_TOKEN="FmD408PdqT1E269gUK57" |
| 7 | + |
| 8 | +NANELO_API="https://api.nanelo.com/v1/" |
| 9 | + |
| 10 | +######## Public functions ##################### |
| 11 | + |
| 12 | +# Usage: add _acme-challenge.www.domain.com "XKrxpRBosdIKFzxW_CT3KLZNf6q0HG9i01zxXp5CPBs" |
| 13 | +dns_nanelo_add() { |
| 14 | + fulldomain=$1 |
| 15 | + txtvalue=$2 |
| 16 | + |
| 17 | + NANELO_TOKEN="${NANELO_TOKEN:-$(_readaccountconf_mutable NANELO_TOKEN)}" |
| 18 | + if [ -z "$NANELO_TOKEN" ]; then |
| 19 | + NANELO_TOKEN="" |
| 20 | + _err "You didn't configure a Nanelo API Key yet." |
| 21 | + _err "Please set NANELO_TOKEN and try again." |
| 22 | + _err "Login to Nanelo.com and go to Settings > API Keys to get a Key" |
| 23 | + return 1 |
| 24 | + fi |
| 25 | + _saveaccountconf_mutable NANELO_TOKEN "$NANELO_TOKEN" |
| 26 | + |
| 27 | + _info "Adding TXT record to ${fulldomain}" |
| 28 | + response="$(_get "$NANELO_API$NANELO_TOKEN/dns/addrecord?type=TXT&ttl=60&name=${fulldomain}&value=${txtvalue}")" |
| 29 | + if _contains "${response}" 'success'; then |
| 30 | + return 0 |
| 31 | + fi |
| 32 | + _err "Could not create resource record, please check the logs" |
| 33 | + _err "${response}" |
| 34 | + return 1 |
| 35 | +} |
| 36 | + |
| 37 | +dns_nanelo_rm() { |
| 38 | + fulldomain=$1 |
| 39 | + txtvalue=$2 |
| 40 | + |
| 41 | + NANELO_TOKEN="${NANELO_TOKEN:-$(_readaccountconf_mutable NANELO_TOKEN)}" |
| 42 | + if [ -z "$NANELO_TOKEN" ]; then |
| 43 | + NANELO_TOKEN="" |
| 44 | + _err "You didn't configure a Nanelo API Key yet." |
| 45 | + _err "Please set NANELO_TOKEN and try again." |
| 46 | + _err "Login to Nanelo.com and go to Settings > API Keys to get a Key" |
| 47 | + return 1 |
| 48 | + fi |
| 49 | + _saveaccountconf_mutable NANELO_TOKEN "$NANELO_TOKEN" |
| 50 | + |
| 51 | + _info "Deleting resource record $fulldomain" |
| 52 | + response="$(_get "$NANELO_API$NANELO_TOKEN/dns/deleterecord?type=TXT&ttl=60&name=${fulldomain}&value=${txtvalue}")" |
| 53 | + if _contains "${response}" 'success'; then |
| 54 | + return 0 |
| 55 | + fi |
| 56 | + _err "Could not delete resource record, please check the logs" |
| 57 | + _err "${response}" |
| 58 | + return 1 |
| 59 | +} |
0 commit comments