# Tiny Cloud - Init Functions
# vim:set filetype=sh:
# shellcheck shell=sh

. "$LIBDIR/tiny-cloud/network-config"

INIT_ACTIONS_BOOT="$(replace_word set_default_interfaces set_network_interfaces $INIT_ACTIONS_BOOT)"

set_resolv_conf() {
	# resolv.conf
	local nameservers="$(imds meta-data/resolv_conf/nameservers)"
	for i in $nameservers; do
		local server="$(imds meta-data/resolv_conf/nameservers/$i)"
		add_once "$ETC"/resolv.conf "nameserver $server"
	done
}

init__set_network_interfaces() {
	local interfaces="$(imds meta-data/network-interfaces)"
	local network_config="$TINY_CLOUD_VAR/network-config"
	mkdir -p "$ETC"/network
	if [ -n "$interfaces" ]; then
		printf "%s\n" "$interfaces" > "$ETC"/network/interfaces
	elif ! [ -f "$ETC"/network/interfaces ]; then
		if network_config_apply "$network_config" "NoCloud network-config"; then
			network_config_setup_interface_names "NoCloud network-config"
		else
			init__set_default_interfaces
		fi
	fi
	if ! grep -q dhcp "$ETC"/network/interfaces; then
		set_resolv_conf
	fi
}
