فهرست منبع

Improve readability and code structure

evgeniy 1 سال پیش
والد
کامیت
2dfb8a740f
1فایلهای تغییر یافته به همراه16 افزوده شده و 11 حذف شده
  1. 16 11
      compose/bin/container-monitoring

+ 16 - 11
compose/bin/container-monitoring

@@ -6,24 +6,30 @@ INTERVAL=3
 
 trap 'stty echo; exit' INT EXIT
 
+print_header() {
+    echo "+----------------------------------------------------+------------+-----------------+-----------------+"
+    printf "| %-50s | %-10s | %-15s | %-15s |\n" "Name" "CPU %" "Memory Usage" "Memory Limit"
+    echo "+----------------------------------------------------+------------+-----------------+-----------------+"
+}
+
+print_container_info() {
+    local container_info=($1)
+    local container_name=${container_info[0]}
+    local container_stats=(${container_info[@]:1})
+
+    printf "| %-50s | %-10s | %-15s | %-15s |\n" "$container_name" "${container_stats[0]}" "${container_stats[1]}" "${container_stats[2]}"
+}
+
 while true; do
     DOCKER_STATS=$(docker stats --no-stream --format "{{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}")
 
     clear
 
     if [[ ! -z "$DOCKER_STATS" ]]; then
-        echo "+----------------------------------------------------+------------+-----------------+-----------------+"
-        printf "| %-50s | %-10s | %-15s | %-15s |\n" "Name" "CPU %" "Memory Usage" "Memory Limit"
-        echo "+----------------------------------------------------+------------+-----------------+-----------------+"
+        print_header
 
         while IFS= read -r line; do
-            line=$(echo "$line" | tr '/' ' ')
-
-            container_info=($line)
-            container_name=${container_info[0]}
-            container_stats=(${container_info[@]:1})
-
-            printf "| %-50s | %-10s | %-15s | %-15s |\n" "$container_name" "${container_stats[0]}" "${container_stats[1]}" "${container_stats[2]}"
+            print_container_info "$(echo "$line" | awk '{gsub(/\//, " "); print}')"
         done <<< "$DOCKER_STATS"
 
         echo "+----------------------------------------------------+------------+-----------------+-----------------+"
@@ -34,4 +40,3 @@ while true; do
 
     sleep $INTERVAL
 done
-