X-Git-Url: https://git.xandkar.net/?a=blobdiff_plain;f=home%2Flib%2Flogin_functions.sh;h=aa46c9f510c577769533c481c0833ccf9383ed75;hb=8fff953bc3cb3a58e1115ed153b3cb7c4796e30d;hp=b6dd8a6dc34732cc6a1a5dc5bc8fc827a084e130;hpb=921bf326e2d6ba8c67e6ba13e30957a8c4224ffe;p=khome.git diff --git a/home/lib/login_functions.sh b/home/lib/login_functions.sh index b6dd8a6..aa46c9f 100644 --- a/home/lib/login_functions.sh +++ b/home/lib/login_functions.sh @@ -674,40 +674,47 @@ status() { echo 'accounting' - printf '%stmux (s->c)\n' "$indent_unit" + 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" }' \