#!/bin/sh
# needs: ether || iwd
# dhcpd - obtain address on all ready interfaces

IF=$(ip link show | awk -F: '/^[0-9]+: en|^[0-9]+: eth|^[0-9]+: wl/ {
	gsub(/ /, "", $2); print $2; exit
}')

[ -n "$IF" ] || { echo "dhcp: no interface found"; exit 1; }

echo "dhcp: requesting address on $IF"
rm -f /run/sv/ready/dhcpd

HOOK=/run/sv/dhcp-hook.sh
cat > "$HOOK" <<'EOF'
#!/bin/sh
[ "$1" = bound ] || [ "$1" = renew ] && touch /run/sv/ready/dhcpd
SCRIPT=/usr/share/udhcpc/default.script
[ -x "$SCRIPT" ] && exec "$SCRIPT" "$@"
EOF
chmod +x "$HOOK"

exec udhcpc -i "$IF" -s "$HOOK" -f -S
