@@ -4,10 +4,12 @@ RED=#ff5555
44GREEN=# 50fa7b
55YELLOW=# f1fa8c
66WHITE=# f8f8f2
7+
78NO_NET=" "
89BEST_NET=" "
910OK_NET=" "
1011BAD_NET=" "
12+
1113PING_HOST=$ZELLIJ_PING_HOST
1214
1315is_number () {
@@ -23,15 +25,14 @@ if [ -z "$ping_host" ]; then ping_host="9.9.9.9"; fi
2325
2426ping_count=3
2527ping_wait_time=255
26-
2728ping_log_file=" /tmp/ping.log"
2829ping_result_file=" /tmp/ping_result"
2930ping_pid_file=" /tmp/ping.pid"
3031
3132ping_not_running () {
3233 local pid
33- pid=$( cat $ping_pid_file )
34- ! ps -p " $pid " > /dev/null
34+ pid=$( cat $ping_pid_file 2> /dev/null )
35+ ! ps -p " $pid " > /dev/null 2>&1
3536}
3637
3738read_cached_result () {
@@ -43,8 +44,7 @@ read_cached_result() {
4344}
4445
4546read_ping_result () {
46- result=$( cut -sd / -f 5 $ping_log_file | cut -d . -f 1)
47-
47+ result=$( cut -sd / -f 5 $ping_log_file 2> /dev/null | cut -d . -f 1)
4848 if is_number " $result " ; then
4949 echo " $result "
5050 else
@@ -64,7 +64,6 @@ execute_ping() {
6464colorize_ping_value () {
6565 local ping=$1
6666 local result
67-
6867 if [ " $ping " -lt 1 ] || [ " $ping " -ge 1000 ]; then
6968 result=$RED
7069 elif [ " $ping " -lt 100 ]; then
@@ -74,14 +73,12 @@ colorize_ping_value() {
7473 elif [ " $ping " -lt 1000 ]; then
7574 result=$YELLOW
7675 fi
77-
7876 echo " $result "
7977}
8078
8179ping_icon () {
8280 local ping=$1
8381 local result
84-
8582 if [ " $ping " -lt 1 ] || [ " $ping " -ge 1000 ]; then
8683 result=" $NO_NET "
8784 elif [ " $ping " -lt 100 ]; then
@@ -91,14 +88,12 @@ ping_icon() {
9188 elif [ " $ping " -lt 1000 ]; then
9289 result=" $BAD_NET "
9390 fi
94-
9591 echo $result
9692}
9793
9894format_ping_value () {
9995 local value=$1
10096 local result
101-
10297 if [ " $value " -eq -1 ]; then
10398 result=" N/A"
10499 elif [ " $value " -ge 1000 ]; then
@@ -108,7 +103,6 @@ format_ping_value() {
108103 else
109104 result=$( printf %3d " $value " )
110105 fi
111-
112106 echo " $result "
113107}
114108
@@ -120,29 +114,36 @@ addPadding() {
120114 fi
121115}
122116
123- icon=${1: no}
117+ # Parse command line arguments
118+ icon=${1:- no}
119+ color=${2:- yes}
124120
125121main () {
126122 local ping_result
127-
128123 if ping_not_running; then
129124 ping_result=$( read_ping_result)
130125 update_cached_result " $ping_result "
131-
132126 execute_ping
133-
134127 else
135128 ping_result=$( read_cached_result)
136129 fi
137130
138131 ping_value=$ping_result
139132 ping_result=" $( format_ping_value " $ping_result " ) "
140133
141- if [[ " $icon " == " no" ]]; then
142- echo -n " $( colorize_ping_value " $ping_value " ) ${ping_result} "
143- else
144- echo -n " $( colorize_ping_value " $ping_value " ) $( ping_icon " $ping_value " ) ${ping_result} "
134+ # Determine color prefix
135+ local color_prefix=" "
136+ if [[ " $color " == " yes" ]]; then
137+ color_prefix=" $( colorize_ping_value " $ping_value " ) "
138+ fi
139+
140+ # Determine icon
141+ local icon_part=" "
142+ if [[ " $icon " == " yes" ]]; then
143+ icon_part=" $( ping_icon " $ping_value " ) "
145144 fi
145+
146+ echo -n " ${color_prefix}${icon_part}${ping_result} "
146147}
147148
148149main
0 commit comments