From 57d5bf15773ae0c23f99395aa35ed9700436fbe3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Mon, 2 Jun 2025 13:37:20 +0200 Subject: [PATCH] confd: Add script to wait for an interface usage: wait-interface wlan0 30 --- src/confd/bin/Makefile.am | 2 +- src/confd/bin/wait-interface | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/confd/bin/wait-interface diff --git a/src/confd/bin/Makefile.am b/src/confd/bin/Makefile.am index 1748757e..925e5130 100644 --- a/src/confd/bin/Makefile.am +++ b/src/confd/bin/Makefile.am @@ -1,4 +1,4 @@ pkglibexec_SCRIPTS = bootstrap error load gen-service gen-hostname \ gen-interfaces gen-motd gen-hardware gen-version \ - mstpd-wait-online + mstpd-wait-online wait-interface sbin_SCRIPTS = dagger migrate diff --git a/src/confd/bin/wait-interface b/src/confd/bin/wait-interface new file mode 100644 index 00000000..8900fdbc --- /dev/null +++ b/src/confd/bin/wait-interface @@ -0,0 +1,21 @@ +#!/bin/sh +if [ $# -lt 2 ]; then + echo "usage: $0 " + exit 1 +fi + +ifname=$1 +timeout=$2 +while true; do + if ip link show $ifname &>/dev/null; then + break + fi + + retries=$(($retries + 1)) + if [ $retries -ge $timeout ]; then + logger -t wait-interface "Timeout: Interface $ifname not found after $timeout seconds" + exit 1 + fi + + sleep 1 +done