From 325c5a51f81a9194512ced30889dae1171928de0 Mon Sep 17 00:00:00 2001 From: Dustin Kirkland Date: Thu, 24 Jun 2010 09:58:09 -0500 Subject: [PATCH] usr/bin/byobu-launcher-uninstall - usr/bin/byobu-launcher --- debian/changelog | 3 +- usr/bin/byobu-launcher | 66 +++++++++++++++++++++++------------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/debian/changelog b/debian/changelog index 29f9b25f..30c13ef1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,7 +8,8 @@ byobu (2.81-0ubuntu1) maverick; urgency=low - usr/bin/byobu-status-detail - usr/bin/byobu-reconnect-sockets - usr/bin/byobu-launch, usr/bin/byobu-launcher-install, - usr/bin/byobu-launcher-uninstall: + usr/bin/byobu-launcher-uninstall + - usr/bin/byobu-launcher * usr/bin/byobu-config, usr/share/doc/byobu/help.txt: improve help text, per feedback from Turnkey Linux users diff --git a/usr/bin/byobu-launcher b/usr/bin/byobu-launcher index 70311aab..f43a4263 100755 --- a/usr/bin/byobu-launcher +++ b/usr/bin/byobu-launcher @@ -17,37 +17,45 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -if [ ! -r "$HOME/.byobu/disable-autolaunch" ]; then - if printf "$TERM" | grep -qs "screen"; then - # Handle nesting - printf "$(gettext 'Do you want to launch byobu in a nested session?') [y/N]: " - answer=$(head -n1) - if [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then - # Prevent nasty launch recursion, if ssh'ing to localhost - if [ -n "$SSH_CONNECTION" ]; then - # This is an SSH session - from=$(echo "$SSH_CONNECTION" | awk '{print $1}') - to=$(echo "$SSH_CONNECTION" | awk '{print $3}') - if [ "$from" = "$to" ]; then - # We have ssh'd from this machine, to this machine - if screen -ls | grep -qs '(Attached)$'; then - # And there is already an attached screen session - # Exit to prevent recursion - false +if [ ! -e "$HOME/.byobu/disable-autolaunch" ]; then + case "$TERM" in + *screen*) + # Handle nesting + printf "$(gettext 'Do you want to launch byobu in a nested session?') [y/N]: " + answer=$(head -n1) + case "$answer" in + y|Y) + # Prevent nasty launch recursion, if ssh'ing to localhost + if [ -n "$SSH_CONNECTION" ]; then + # This is an SSH session + from=$(echo "$SSH_CONNECTION" | awk '{print $1}') + to=$(echo "$SSH_CONNECTION" | awk '{print $3}') + if [ "$from" = "$to" ]; then + # We have ssh'd from this machine, to this machine + case "$(screen -ls)" in + *\(Attached\)*) + # And there is already an attached screen session, exit to prevent recursion + false + ;; + *) + exec /usr/bin/byobu "$@" + ;; + esac + else + exec /usr/bin/byobu "$@" + fi else exec /usr/bin/byobu "$@" fi - else - exec /usr/bin/byobu "$@" - fi - else - exec /usr/bin/byobu "$@" - fi - else - false - fi - else - exec /usr/bin/byobu "$@" - fi + ;; + *) + false + ;; + esac + ;; + *) + exec /usr/bin/byobu "$@" + ;; + esac fi false