1
0
Fork 0
env/.bar/11-ping.30s.sh

44 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
SPEED_FILE=/tmp/speedtest.log
if [[ "$1" == "speedtest" ]]; then
echo "Testing..." > /tmp/speedtest.log
OUTPUT="$(/usr/local/bin/speedtest --bytes --timeout 10 --simple)"
echo "$OUTPUT" > /tmp/speedtest.log
echo "Updated: $(date '+%a %l:%M:%S %p')" >> /tmp/speedtest.log
osascript -e "display notification \"$OUTPUT\" with title \"BitBar Speedtest\"" &> /dev/null
exit
fi
PING_ADDR=1.1.1.1
PING_STATS=$(ping -c 10 -i 0.1 $PING_ADDR | tail -n 2)
PING_NAMES=$(echo "$PING_STATS" | tail -n 1 | cut -d ' ' -f 2)
PING_TIMES=$(echo "$PING_STATS" | tail -n 1 | cut -d ' ' -f 4)
loss=$(echo "$PING_STATS" | head -n 1 | cut -d ' ' -f 7)
avg=$(echo $PING_TIMES | cut -d '/' -f 2 | tr -d $'\n')
printf "%.1fms %.0f%% | size=9\n" $avg ${loss%?}
echo ---
echo "address $PING_ADDR"
echo "loss $loss"
for i in {1..3}; do
name=$(echo $PING_NAMES | cut -d '/' -f $i | tr -d $'\n')
time=$(echo $PING_TIMES | cut -d '/' -f $i | tr -d $'\n')
echo "$name ${time}ms"
done
echo ---
if [[ -f /tmp/speedtest.log ]]; then
cat $SPEED_FILE
fi
echo "Run Speedtest | bash='$0' param1='speedtest' terminal=false refresh=true"