# Hetzner Instance MetaData Service variables and functions
# vim:set filetype=sh:
# shellcheck shell=sh

IMDS_BASE_URI="hetzner/v1"
IMDS_URI="$IMDS_BASE_URI/metadata"

IMDS_HOSTNAME="hostname"
IMDS_LOCAL_HOSTNAME="$IMDS_HOSTNAME"
IMDS_SSH_KEYS="public-keys"
IMDS_USERDATA="userdata"

_imds_header() {
	echo ""
}

_imds_ssh_keys() {
	_imds "$IMDS_SSH_KEYS" | sed 's/"/\n/g' | grep -E -v '(\[|\]|,)' | sort -u
}

_imds_userdata() {
	wget --quiet --timeout 1 --output-document - --header "$(_imds_header)" "http://$IMDS_ENDPOINT/$IMDS_BASE_URI/$IMDS_USERDATA"
}
