#!/bin/sh

PREREQ="dropbear"

prereqs() {
        echo "$PREREQ"
}

case "$1" in
        prereqs)
                prereqs
                exit 0
        ;;
esac

. /scripts/functions

[ -x /bin/curl ] || { log_failure_msg "cURL binary not found"; exit 0; }

. /conf/initramfs.conf

log_begin_msg "Sending notification about the boot process"

. /conf/conf.d/bootguard

[ "x$USE_SLACK" == "x1" ] && [ -z "$SLACK_BASEURL" ] && { log_failure_msg "No Slack URL defined"; exit 0; }
[ "x$USE_ROCKETCHAT" == "x1" ] && [ -z "$RC_HOOKURL" ] && { log_failure_msg "No Rocket.Chat URL defined"; exit 0; }

for x in /run/net-*.conf; do
	[ -e "$x" ] && break
done

[ $? -eq 0 ] || sleep 5

ADDRESS=$(ip -o -4 addr show up scope global | grep -o 'inet [0-9]*\.[0-9]*\.[0-9]*\.[0-9]*' | cut -f2 -d' ')

ping -c1 -W3 "8.8.8.8" >/dev/null || {
    log_failure_msg "DNS unreachable, retrying..."
    sleep 5
    ping -c1 -W3 "8.8.8.8" >/dev/null || {
		log_failure_msg "DNS unreachable, retrying..."
		sleep 15
		ping -c1 -W3 "8.8.8.8" >/dev/null || { log_failure_msg "DNS unreachable"; exit 0; }
	}
}

[ "x$USE_SLACK" == "x1" ] && curl --cacert /etc/ssl/certs/ca-certificates.crt -X POST --data-urlencode 'payload={"channel": "'"$SLACK_CHANNEL"'", "username": "'"$SLACK_BOTNAME"'", "icon_emoji": "'"$SLACK_BOTICON"'", "text": "Server '"$BOOTGUARD_HOST"' ('"$ADDRESS"') is now waiting for passphrase."}' "$SLACK_POSTURL"

[ "x$USE_ROCKETCHAT" == "x1" ] && curl --cacert /etc/ssl/certs/ca-certificates.crt -X POST --data-urlencode 'payload={"text":"Server '"$BOOTGUARD_HOST"' ('"$ADDRESS"') is now waiting for passphrase."}' "$RC_HOOKURL"

log_end_msg
