#!/bin/sh -f
# \
exec dptcl "$0" -- "$@"

#
# $Log: not supported by cvs2svn $
#

proc usage {} {
    puts stderr "usage: remoteDisplay <hostname> \[<any medm args>\] <display1.adl> ...\n"
    puts stderr "Runs medm on selected <hostname> (chiron is recommended)."
    puts stderr "The requested display(s) will show up on your local"
    puts stderr "machine's display. Note that you may supply arguments"
    puts stderr "to medm, such as -cmap to get a private colormap."
    exit 1
}

if {$argc < 2} {
    usage
}

set port 4550
set defaultHost chiron

# Set display variable
if [catch {exec domainname} domain] {
    puts stderr "remoteDisplay: unable to exec domainname command: $domain"
    exit 1
}
set dn .${domain}:
if {[regexp {^:} $env(DISPLAY)]} {
    set display [exec uname -n]$env(DISPLAY)
} else {
    regsub : $env(DISPLAY) $dn display
}

# Get command line args
set host [lindex $argv 0]
set displayArgs [lrange $argv 1 end]

# Get xhost permission
if [catch {exec xhost + $host} res] {
    puts stderr "remoteDisplay: unable to set xhost + for $host: $res"
    exit 1
} 

# Contact remoteDisplayServer on selected host

if [catch {dp_MakeRPCClient $host $port} server] {
    puts stderr "remoteDisplay: unable to contact remoteDisplayServer: $server"
    exit 1
}

if [catch {eval dp_RPC $server displayScreens $display $displayArgs} result] {
    puts stderr "remoteDisplay: unable to invoke remote displays: $result"
    exit 1
}

exit 0
