82 行
3.3 KiB
Bash
実行ファイル
82 行
3.3 KiB
Bash
実行ファイル
#!/bin/sh -e
|
|
#
|
|
# byobu-launch - call the launcher if we're in an interactive shell
|
|
# Copyright (C) 2010 Canonical Ltd.
|
|
#
|
|
# Authors: Dustin Kirkland <kirkland@byobu.org>
|
|
#
|
|
# 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/>.
|
|
|
|
# 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/.byoburc" ] && . "$HOME/.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
|