changeset 526:852565046ed0 default tip

zsh: fidget with screen/tmux message This should speed things up very slightly by avoiding some `grep` action in the common case of no detached screens/tmuxes.
author Augie Fackler <raf@durin42.com>
date Mon, 14 Nov 2022 11:02:35 -0500
parents b0fa9e7cadac
children
files .zshrc
diffstat 1 files changed, 10 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.zshrc
+++ b/.zshrc
@@ -10,26 +10,33 @@ if [ ! "$SHOWED_SCREEN_MESSAGE" = "true"
         # Use /bin/which explicitly because we have a shell function
         # that confuses the zsh built-in which.
         if sh -c 'which screen' 2> /dev/null > /dev/null; then
-                detached_screens=`screen -list | grep Detached | sed -e 's/	(Detached)//'`
-                if [ ! -z "$detached_screens" ]; then
+                SCREENS_OUTPUT="$(screen -list)"
+                if [[ "${SCREENS_OUTPUT}" =~ Detached ]] ; then
+                        detached_screens=`echo "${SCREENS_OUTPUT}" | grep Detached | sed -e 's/	(Detached)//'`
                         echo "+---------------------------------------+"
                         echo "| Detached screens are available:       |"
                         echo "$detached_screens"
                         echo "+---------------------------------------+"
                 fi
+                unset SCREENS_OUTPUT
+                unset detached_screens
         fi
         export SHOWED_SCREEN_MESSAGE="true"
 fi
 
 if [ ! "$SHOWED_TMUX_MESSAGE" = "true" ]; then
   if which tmux 2> /dev/null > /dev/null; then
-    detached_screens=$(tmux ls 2> /dev/null | grep -v attached)
+    detached_screens="$(tmux ls 2> /dev/null)"
+    if [ ! -z "$detached_screens" ]; then
+        detached_screens="$(echo "$detached_screens" | grep -v attached)"
+    fi
     if [ ! -z "$detached_screens" ]; then
       echo "+-----------------------------------------------------------+"
       echo "| Detached tmux sessions are available:                     |"
       echo "$detached_screens"
       echo "+-----------------------------------------------------------+"
     fi
+    unset detached_screens
   fi
   export SHOWED_TMUX_MESSAGE="true"
 fi