tteckster 3 роки тому
батько
коміт
b85a683f43
1 змінених файлів з 37 додано та 0 видалено
  1. 37 0
      setup/debian-install.sh

+ 37 - 0
setup/debian-install.sh

@@ -28,6 +28,37 @@ function error_exit() {
   exit $EXIT
   exit $EXIT
 }
 }
 
 
+function internet() {
+  test_urls="\
+  https://www.google.com/ \
+  https://www.microsoft.com/ \
+  https://www.cloudflare.com/ \
+  "
+  processes="0"
+  pids=""
+  for test_url in $test_urls; do
+    curl --silent --head "$test_url" > /dev/null &
+    pids="$pids $!"
+    processes=$(($processes + 1))
+  done
+  while [ $processes -gt 0 ]; do
+    for pid in $pids; do
+      if ! ps | grep "^[[:blank:]]*$pid[[:blank:]]" > /dev/null; then
+        processes=$(($processes - 1))
+        pids=$(echo "$pids" | sed --regexp-extended "s/(^| )$pid($| )/ /g")
+
+        if wait $pid; then
+          kill -TERM $pids > /dev/null 2>&1 || true
+          wait $pids
+          return 0
+        fi
+      fi
+    done
+    sleep 0.1
+  done
+  return 1
+}
+
 function msg_info() {
 function msg_info() {
     local msg="$1"
     local msg="$1"
     echo -ne " ${HOLD} ${YW}${msg}..."
     echo -ne " ${HOLD} ${YW}${msg}..."
@@ -54,6 +85,12 @@ done
 msg_ok "Set up Container OS"
 msg_ok "Set up Container OS"
 msg_ok "Network Connected: ${BL}$(hostname -I)"
 msg_ok "Network Connected: ${BL}$(hostname -I)"
 
 
+if internet; then
+  msg_ok "Internet Online"
+else
+  echo -e "${BFR} {CROSS}${RD} Internet Offline"
+fi
+
 msg_info "Updating Container OS"
 msg_info "Updating Container OS"
 apt update &>/dev/null
 apt update &>/dev/null
 apt-get -qqy upgrade &>/dev/null
 apt-get -qqy upgrade &>/dev/null