Rework how screen is handled upon login.
This commit is contained in:
parent
352f506851
commit
e2ce961d84
2 changed files with 29 additions and 31 deletions
|
|
@ -38,13 +38,9 @@ unset PLATFORM
|
|||
|
||||
# Screen.
|
||||
hash screen >/dev/null 2>&1 && {
|
||||
# Reattach existing screens.
|
||||
screen_attach
|
||||
|
||||
# Output some screen info.
|
||||
export SCREENDIR="$HOME/.screen-${HOSTNAME%%.*}"
|
||||
if [[ ! -e ~/.hushlogin ]]; then
|
||||
if [[ ! -z "$STY" ]]; then
|
||||
if [[ -n "$SSH_TTY" ]]; then
|
||||
if [[ -n "$STY" ]]; then
|
||||
echo "Screen $STY, window $WINDOW."
|
||||
echo
|
||||
else
|
||||
|
|
@ -58,6 +54,33 @@ hash screen >/dev/null 2>&1 && {
|
|||
fi
|
||||
unset SCREENS
|
||||
fi
|
||||
elif [[ -n "$STY" ]]; then
|
||||
echo "Screen $STY, window $WINDOW."
|
||||
echo
|
||||
else
|
||||
TTY="$(tty | cut -d/ -f3-)"
|
||||
SCREENS="$(screen -list | fgrep "${HOSTNAME%%.*}" | fgrep "${TTY//\//-}")"
|
||||
case "$(echo "${SCREENS:--n}" | wc -l)" in
|
||||
0)
|
||||
# No screens found - start a new instance.
|
||||
screen
|
||||
;;
|
||||
1)
|
||||
# Just one screen - reconnect if it's not dead.
|
||||
if (( $(echo "$SCREENS" | grep "Dead" | wc -l) == 1 )); then
|
||||
echo "Found dead screen for $TTY:"
|
||||
echo "$SCREENS" | sed -e 's/^/ /g'
|
||||
else
|
||||
screen -dr "${TTY//\//-}.${HOSTNAME%%.*}"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Multiple screens - output a list
|
||||
echo "Multiple screens found for $TTY:"
|
||||
echo "$SCREENS" | sed -e 's/^/ /g'
|
||||
;;
|
||||
esac
|
||||
unset SCREENS
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue