#!/bin/csh -f
#set echo

if ($#argv == 0) then
	echo -n "Machine name: "
	set argv=$<
endif

set rhost=.
set mode=.
set rootlogin=.
set eklogin=.
set xterm=.

foreach x ($argv)
	if (x$x =~ x-*) then
		switch ($x)
			case -xterm:
				set xterm=true
				breaksw			
			case -ucb:
				if ($mode != .) goto usage
				set mode=ucb
				breaksw
			case -rkinit:
				if ($mode != .) goto usage
				set mode=rkinit
				breaksw
			case -root:
				set rootlogin=true
				breaksw
			case -krb:
				if ($mode != .) goto usage
				set mode=krb
				breaksw
			case -telnet:
				if ($mode != .) goto usage
				set mode=telnet
				breaksw
			case -encrypt:
				set eklogin=true
				breaksw
			default:
				goto usage
				breaksw
		endsw
	else if ($rhost == .) then
		set rhost=$x
	else
		goto usage
	endif
end

if ($mode == .) set mode=ucb
if ($rhost == .) goto usage

switch ($mode)
	case rkinit:
		rkinit $rhost -l marc
		if ($status != 0) then
			sleep 5
			exit 1
		endif
		rsh $rhost /bin/athena/attach $user
		breaksw
	default:
		breaksw
endsw

xhost +$rhost

if ($xterm != true) then
	if (($DISPLAY =~ unix:*) || ($DISPLAY =~ :*)) then
		set term="`hostinfo -h $host`:`echo $DISPLAY | sed 's/^.*://'`"
	else
		set term="$DISPLAY"
	endif
endif

set ropt
if ($rootlogin == true) then
	set ropt=($ropt -l root)
	if ($mode == krb) then
		setenv KRBTKFILE /tmp/tkt_${user}_tf1
		klist -t -file $KRBTKFILE
		if ($status != 0) kinit ${user}.root
		if ($status != 0) then
			sleep 5
			exit 1
		endif
	endif
endif

if ($eklogin == true) set ropt=($ropt -x)

switch ($mode)
	case rkinit:
	case krb:
		rlogin $rhost -noflow $ropt
		breaksw
	case ucb:
		rlogin.ucb $rhost -noflow $ropt
		breaksw
	case telnet:
		telnet $rhost
		breaksw
	default:
		goto usage
		breaksw
endsw

xhost -$rhost

# done in .logout now
# if (($rootlogin == true) && ($mode == krb)) kdestroy

exit

usage:
echo "remote [-xterm | -ucb | -rkinit | -krb | -telnet | -root | -encrypt] [hostname]"
