Update Racket bin path, post update
[khome.git] / home / lib / login_functions.sh
index 6e8242d..7460622 100644 (file)
@@ -239,8 +239,8 @@ howto() {
 
 _yt() {
     local -r base_dir="$1"
-    local -r opts="$2"
-    local -r uri="$3"
+    local -r uri="$2"
+    local -r opts="$3"
 
     local -r id=$(youtube-dlc --get-id "$uri")
     local -r title=$(youtube-dlc --get-title "$uri" | sed 's/[^A-Za-z0-9._-]/_/g')
@@ -254,7 +254,7 @@ _yt() {
 
 yt_audio() {
     local -r uri="$1"
-    _yt "${DIR_YOUTUBE_AUDIO}/individual" '-f 140' "$uri"
+    _yt "${DIR_YOUTUBE_AUDIO}/individual" "$uri" '-f 140'
 }
 
 yt_video() {
@@ -584,21 +584,36 @@ status() {
 
     echo "${indent_unit}-->"
 
-    printf '%sUDP: ' "${indent_unit}${indent_unit}"
-    sudo -n netstat -ulnp \
-    | awk 'NR > 2 {print $6}' \
-    | awk -F/ '{print $2}' \
-    | sort -u \
-    | xargs \
-    | column -t
-
-    printf '%sTCP: ' "${indent_unit}${indent_unit}"
-    sudo -n netstat -tlnp \
-    | awk 'NR > 2 {print $7}' \
-    | awk -F/ '{print $2}' \
-    | sort -u \
-    | xargs \
-    | column -t
+    sudo -n netstat -tulnp \
+    | awk -v indent="${indent_unit}${indent_unit}" '
+        NR > 2 && ((/^tcp/ && proc = $7) || (/^udp/ && proc = $6)) {
+           protocol = $1
+           addr = $4
+           port = a[split(addr, a, ":")]
+           name = p[split(proc, p, "/")]
+           names[name] = 1
+           protocols[protocol] = 1
+           if (!seen[protocol, name, port]++)
+               ports[protocol, name, ++seen[protocol, name]] = port
+       }
+
+       END {
+           for (protocol in protocols) {
+               printf "%s%s\t", indent, toupper(protocol)
+               for (name in names) {
+                   if (n = seen[protocol, name]) {
+                       sep = ""
+                       printf "%s:", name
+                       for (i = 1; i <= n; i++) {
+                           printf "%s%d", sep, ports[protocol, name, i]
+                           sep = ","
+                       }
+                       printf "  "
+                   }
+               }
+               printf "\n"
+           }
+       }'
 
     echo "${indent_unit}<->"
 
This page took 0.037709 seconds and 4 git commands to generate.