Files
libp2p-website/dnslink.sh
Oli Evans 60ab7cc3fb Site refactor (#52)
* feat: all the things
2017-06-24 11:03:04 +01:00

54 lines
1.6 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Usage:
# DNSIMPLE_TOKEN=<token> ./dnslink.sh <domain> <hash>
#
# Example:
# DNSIMPLE_TOKEN=trustno1 ./dnslink.sh website.protocol.ai Qmfoobar
#
# Dependencies:
# - bash
# - curl
# - jq
#
# From:
# https://raw.githubusercontent.com/ipfs/infrastructure/master/scripts/dnslink.sh
#
set -e
ZONE="$1"
HASH="$2"
([ ! -z "$DNSIMPLE_TOKEN" ] && [ ! -z "$ZONE" ] && [ ! -z "$HASH" ]) \
|| (echo "Usage: DNSIMPLE_TOKEN=<token> ./dnslink.sh <domain> <hash>" && exit 1)
RECORD_NAME="_dnslink"
RECORD_TTL=120
record_id=$(
curl -s "https://api.dnsimple.com/v1/domains/$ZONE/records?name=$RECORD_NAME&type=TXT" \
-H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \
-H "Accept: application/json" \
| jq -r '.[].record.id'
)
if [ -z "$record_id" ]; then
curl -v -s -X POST "https://api.dnsimple.com/v1/domains/$ZONE/records" \
-H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d "{\"record\":{ \"name\":\"$RECORD_NAME\", \"record_type\":\"TXT\", \"content\":\"dnslink=/ipfs/$HASH\", \"ttl\":\"$RECORD_TTL\" }}" \
| jq -r '.record' \
&& printf "\\nIt looks like we're good: https://ipfs.io/ipns/$ZONE\\n"
else
curl -v -s -X PUT "https://api.dnsimple.com/v1/domains/$ZONE/records/$record_id" \
-H "X-DNSimple-Domain-Token: $DNSIMPLE_TOKEN" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d "{\"record\":{ \"content\":\"dnslink=/ipfs/$HASH\", \"name\":\"$RECORD_NAME\", \"ttl\":\"$RECORD_TTL\" }}" \
| jq -r '.record' \
&& printf "\\nIt looks like we're good: https://ipfs.io/ipns/$ZONE\\n"
fi