#!/bin/sh -e
#
#    byobu-launcher - conditionally launch byobu
#    Copyright (C) 2010 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@canonical.com>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

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
					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
fi
false
