#!/bin/sh -e # # byobu-launch - call the launcher if we're in an interactive shell # Copyright (C) 2010 Canonical Ltd. # # Authors: Dustin Kirkland # # 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 . # 1) Prevent recursion, and multiple sourcing of profiles with the BYOBU_SOURCED_PROFILE environment variable. # 2) Respect environment variables (LC_BYOBU and BYOBU_DISABLE) passable over SSH to disable # Byobu launch. This puts that configurability on the SSH client, # in addition to the server. # To use over SSH, your /etc/ssh/sshd_config and /etc/ssh/ssh_config # must pass this variable with AcceptEnv and SendEnv. # Note that LC_* are passed by default on Debian/Ubuntu, we'll optionally # support LC_BYOBU=0 # And in your local bashrc: # $HOME/.bashrc: export LC_BYOBU=0 # or edit your sshd_config, ssh_config, and set: # $HOME/.bashrc: export BYOBU_DISABLE=1 _tty=$(tty) if [ "${_tty#/dev/ttyS}" != "$_tty" ] && [ "${_tty#/dev/ttyAMA}" != "$_tty" ]; then # Don't autolaunch byobu on serial consoles # You can certainly run 'byobu' manually, though echo echo "INFO: Disabling auto-launch of Byobu on this serial console" echo "INFO: You can still run 'byobu' manually at the command line" echo elif [ "$BYOBU_SOURCED_PROFILE" != "1" ] && [ "$LC_BYOBU" != "0" ] && [ "$BYOBU_DISABLE" != "1" ] && [ -O "$HOME" ]; then unset _tty BYOBU_SOURCED_PROFILE=1 PKG="byobu" [ -r "$HOME/.config/byoburc" ] && . "$HOME/.config/byoburc" [ -z "${BYOBU_PREFIX}" ] && export BYOBU_PREFIX="/usr" || export BYOBU_PREFIX . "${BYOBU_PREFIX}/lib/${PKG}/include/common" # Ensure that autolaunch is not explicitly disabled if [ ! -r "$BYOBU_CONFIG_DIR/disable-autolaunch" ]; then case "$-" in *i*) # Attempt to merge shell history across sessions/windows (works with some exceptions) for i in shopt setopt; do if eval $BYOBU_TEST $i >/dev/null; then case $i in shopt) $i -s histappend || true ;; setopt) $i appendhistory || true ;; esac fi done [ -n "$PROMPT_COMMAND" ] && PROMPT_COMMAND="history -a;history -r;$PROMPT_COMMAND" || PROMPT_COMMAND="history -a;history -r" # Source profile, if necessary [ -z "$_byobu_sourced" ] && [ -r "$HOME/.profile" ] && . "$HOME/.profile" if byobu-launcher "$@" ; then # Wait very briefly for the no-logout flag to get written? sleep 0.1 if [ -e "$BYOBU_CONFIG_DIR/no-logout-on-detach" ] || [ -e "$BYOBU_RUN_DIR/no-logout" ]; then # The user does not want to logout on byobu detach rm -f "$BYOBU_RUN_DIR/no-logout" # Remove one-time no-logout flag, if it exists true else exit 0 fi fi ;; esac fi fi unset _tty true # vi: syntax=sh ts=4 noexpandtab