#! /usr/bin/env dash # shellcheck source=/dev/null SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH retest=120 retest_if_con_fails=10 backend=nmcli case "$backend" in "nmcli") # Test for connectivity with nmcli while true; do connection_status=$(nmcli networking connectivity) if [ "$connection_status" = "full" ]; then echo "internet|string|Connected" echo "" sleep $retest else echo "internet|string|Disconnected" echo "" sleep $retest_if_con_fails fi done ;; "ping") # Test for connectivity with ping ip_address='8.8.8.8' ping_number=3 while true; do ping_result=$(mktmp) ping $ip_address -c $ping_number -q | awk 'BEGIN {FS="/"} END {print $5}' >"$ping_result" if [ "$(wc -l <"$ping_result")" -eq 0 ]; then echo "med|string|No connection" echo "" sleep $retest_if_con_fails else echo "med|string|$(cat "$ping_result") ms" echo "" sleep $retest fi done ;; esac # vim: ft=sh