Leave TODO to bring back tmux session listings
[khome.git] / home / lib / login_functions.sh
index b6dd8a6..335f6fd 100644 (file)
@@ -674,40 +674,48 @@ status() {
 
     echo 'accounting'
 
-    printf '%stmux (s->c)\n' "$indent_unit"
+    # TODO Bring back seesion and client listing, but per server/socket.
+    printf '%stmux\n' "$indent_unit"
     ps -eo comm,cmd \
     | awk '
         # Expecting lines like:
         #     "tmux: server    tmux -L pistactl new-session -d -s pistactl"
         #     "tmux: client    tmux -L foo"
         #     "tmux: client    tmux -Lbar"
+        #     "tmux: client    tmux"
+        #     "tmux: server    tmux -L foo -S bar" <-- -S takes precedence
         /^tmux:/ {
             # XXX This of course assumes pervasive usage of -L
             # TODO Handle -S
             role=$2
+
+            split($0, sides_of_S, "-S")
+            split(sides_of_S[2], words_right_of_S, FS)
+
             split($0, sides_of_L, "-L")
             split(sides_of_L[2], words_right_of_L, FS)
-            sock=words_right_of_L[1]
-            if (!sock) {
-                sock = "anon"
+
+            if (words_right_of_S[1]) {
+                sock = "path." words_right_of_S[1]
+            } else if (words_right_of_L[1]) {
+                sock = "name." words_right_of_L[1]
             } else {
-                sock = "named." sock
+                sock = "default"
             }
+
             roles[role]++
             socks[sock]++
             count[role, sock]++
         }
 
         END {
-            sock_sep = ""
             for (sock in socks) {
-                printf "%s%s ", sock_sep, sock
-                sock_sep = "\n"
-                role_sep = ""
-                for (role in roles) {
-                    printf "%s%d", role_sep, count[role, sock]
-                    role_sep = "->"
+                clients = count["client", sock]
+                printf "%s ", sock
+                if (clients) {
+                    printf "<-> %d", clients
                 }
+                printf "\n"
             }
             printf "\n"
         }' \
This page took 0.045512 seconds and 4 git commands to generate.