#! /usr/bin/env dash # shellcheck source=/dev/null SHELL_LIBRARY_VERSION="1.1.4" . %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 [ "$(cat "$ping_result" | wc -l)" -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