#!/bin/bash NET_CHECK_HOST="${NET_CHECK_HOST:-8.8.8.8}" NET_CHECK_TIMEOUT="${NET_CHECK_TIMEOUT:-3}" check_internet() { local host="${1:-$NET_CHECK_HOST}" if ping -c 1 -W "$NET_CHECK_TIMEOUT" "$host" &>/dev/null; then label_connected "Internet reachable ${DIM}(${host})${RESET}" _log_write "NET " "Connected: $host" return 0 else label_disconnect "No internet connection ${DIM}(${host})${RESET}" _log_write "NET " "Disconnected: $host" return 1 fi } check_host() { local host="$1" local label="${2:-$host}" if ping -c 1 -W "$NET_CHECK_TIMEOUT" "$host" &>/dev/null 2>&1; then label_connected "$label" return 0 else label_disconnect "$label" return 1 fi } check_url() { local url="$1" local label="${2:-$url}" local http_code http_code=$(curl -s -o /dev/null -w "%{http_code}" \ --max-time "$NET_CHECK_TIMEOUT" "$url" 2>/dev/null || echo "000") if [[ "$http_code" =~ ^[23] ]]; then label_connected "$label ${DIM}(HTTP ${http_code})${RESET}" _log_write "NET " "URL OK [$http_code]: $url" return 0 else label_disconnect "$label ${DIM}(HTTP ${http_code})${RESET}" _log_write "NET " "URL FAIL [$http_code]: $url" return 1 fi } require_internet() { if ! check_internet; then log_error "Internet connection required. Aborting." exit 1 fi }