#! /bin/bash

declare -i samples=100
declare -a servers=('1.1.1.1' '8.8.8.8')
declare -i highestloss=0

declare -i alltimehighest=0
declare -i alltimelowest=100
declare -i iterations=1

while :; do
	highestloss=0
	for server in "${servers[@]}"; do
		stats="$(ping "$server" -c "$samples" | tail -n 2 | head -n 1)"
		losspercent="$(echo "$stats" | cut -f6 -d ' ')"
		loss="${losspercent%\%}"
		[ -z "$loss" ] && continue
		if (( loss > highestloss )); then
			highestloss="$loss"
		fi
	done
	color="\e[34m"
	if (( highestloss > 0 )); then
		color="\e[31m"
	fi
	if (( highestloss > alltimehighest )); then
		alltimehighest="$highestloss"
	fi
	if (( highestloss < alltimelowest )); then
		alltimelowest="$highestloss"
	fi
	printf "\\rCurrent loss: $color%-3.3s\e[0m - \e[33m%-4.4s \e[34m%-4.4s \e[0m%-4.4s" \
		"$highestloss" \
		"$alltimehighest" \
		"$alltimelowest" \
		"$iterations"
	iterations="$(( iterations + 1 ))"
	sleep 1
done