# $Paefchen: home/as/.csh/ssh.csh,v 1.1 2008/01/07 06:03:02 as Exp $
# CSHRC_RELOAD: NO
# CSHRC_PROMPTONLY: YES
if (! $?CSHRC_MD_SSH_LAODED) then
# Alias auf sich selber setzen
aliass ssh ~/.csh/ssh.csh
else
# Pfad zu ssh
set SSH = `whereis ssh`
# Wenn ein Agent rennt dann -A Setzen
# dies ist auch der Fall wenn man vor her
# schon mit -A auf diese Host gekommen ist.
if ($?SSH_AUTH_SOCK) then
set SSH = "$SSH -A"
endif
# Wenn kein Screen bzwc. keine Prompt wird
# ssh normal aufgerufen
if (! $?STY || ! $?prompt) then
$SSH $*
# wenn Screen, dann wird ssh im neuen
# Screen-Fenster gestartet.
else
# letzer Parameter
set _host = $argv[$#argv]
# schauen ob ein User mittles »-l« angegeben ist.
set _status = 0
foreach arg ($*)
if ($_status) then
set _user = $arg
set _status = 0
else if ("$arg" == "-l") then
set _status = 1
endif
end
# Wenn kein usser mittels »-l« gefunden wurde
if (! $?_user) then
# dann schauen wir ob er vorm host mit @ getrennt steht.
set _user_tmp = `echo $_host | sed 's/\(.*\)@.*/\1/'`
# wenn nicht wird der eingelogte user genommen
if (-z $_user_tmp || $_host == $_user_tmp) then
set _user = $USER
# Ansonsten wird der User gesetzt
# und der Host gleich mit
else
set _user = $_user_tmp
set _host = `echo $_host | sed 's/.*@\(.*\)/\1/'`
endif
endif
# nun noch den Screen-Titel setzen.
# Ist der gefundene user gleich des eingelogten,
# dann wird er ignoriert
if ($_user == $USER) then
set ssh_title = $_host
else
set ssh_title = "$_user@$_host"
endif
# Variablen löschen
unset _status arg _user_tmp _host _user
# Screen starten
screen -t $ssh_title $SSH $*
endif
endif