File:  [Paefchen] / home / as / .csh / ssh.csh
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Mon Jan 7 06:03:02 2008 UTC (16 years, 10 months ago) by as
Branches: MAIN
CVS tags: HEAD
Hello My Home ;)

# $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