From 5ed71fa10d5256d537c77d84bbb00e175f5a7882 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Sun, 22 Mar 2026 19:59:46 +0100 Subject: [PATCH] utils: ixll scan: show spinner while waiting for avahi-browse Signed-off-by: Joachim Wiberg --- utils/libll.sh | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/utils/libll.sh b/utils/libll.sh index 5698e765..8d15c2c2 100644 --- a/utils/libll.sh +++ b/utils/libll.sh @@ -197,12 +197,31 @@ llscan_mdns() { local all="$1" local flags="-tarp" + local tmpfile i c pid if avahi-browse --help 2>&1 | grep -q -- '-k'; then flags="-tarpk" fi - avahi-browse $flags 2>/dev/null | awk -F';' -v show_all="$all" ' + tmpfile=$(mktemp) + avahi-browse $flags 2>/dev/null >"$tmpfile" & + pid=$! + + if [ -t 2 ]; then + i=0 + while kill -0 "$pid" 2>/dev/null; do + case $((i % 4)) in + 0) c='-';; 1) c="\\";; 2) c='|';; 3) c='/';; + esac + printf "\r[%s] Scanning, please wait ..." "$c" >&2 + i=$((i + 1)) + sleep 0.2 + done + printf "\r\033[2K" >&2 + fi + + wait "$pid" + awk -F';' -v show_all="$all" ' $1 == "=" { host = $7 proto = $3 @@ -279,7 +298,8 @@ llscan_mdns() printf "\n%d device(s) found.\n", ndevs } - ' + ' "$tmpfile" + rm -f "$tmpfile" } llscan_ll()