-
Notifications
You must be signed in to change notification settings - Fork 0
/
acme_desec.sh
executable file
·54 lines (43 loc) · 1.42 KB
/
acme_desec.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/bin/bash
# truenas-ACME-desec-authenticator
DESEC_TOKEN="${DESEC_TOKEN}"
OVERRIDE_DOMAIN=""
add_record() {
_DOMAIN="${1}"
_SUBDOMAIN="${2}"
_TXT_VAL="${3}"
echo "Adding TXT record to ${_SUBDOMAIN} in ${_DOMAIN} (Value: ${_TXT_VAL})"
curl -X POST "https://desec.io/api/v1/domains/${_DOMAIN}/rrsets/" \
--header "Authorization: Token ${DESEC_TOKEN}" \
--header "Content-Type: application/json" --data @- <<< \
"{\"subname\": \"${_SUBDOMAIN}\", \"type\": \"TXT\", \"ttl\": 3600, \"records\": [\"\\\"${_TXT_VAL}\\\"\"]}"
}
del_record() {
_DOMAIN="${1}"
_SUBDOMAIN="${2}"
_TXT_VAL="${3}"
echo "Deleting TXT record from ${_SUBDOMAIN} in ${_DOMAIN} (Value: ${_TXT_VAL})"
curl -X DELETE "https://desec.io/api/v1/domains/${_DOMAIN}/rrsets/${_SUBDOMAIN}/TXT/" \
--header "Authorization: Token ${DESEC_TOKEN}"
}
if (( $# != 4 )); then
echo "Wrong numbers of parameters"
exit 1
fi
COMMAND="$1"
DOMAIN="$2"
SUBDOMAIN="$3"
TXT_VAL="$4"
if [ ! -z "$OVERRIDE_DOMAIN" ]; then
echo "Override Domain (${OVERRIDE_DOMAIN}) set, using this instead of ${DOMAIN}"
DOMAIN="${OVERRIDE_DOMAIN}"
SUBDOMAIN=${SUBDOMAIN%%".$DOMAIN"}
fi
if [ "$COMMAND" == "set" ]; then
add_record "${DOMAIN}" "${SUBDOMAIN}" "${TXT_VAL}"
elif [ "$COMMAND" == "unset" ]; then
del_record "${DOMAIN}" "${SUBDOMAIN}" "${TXT_VAL}"
else
echo "Unknown command: ${COMMAND}"
exit 1
fi