xenocara/app/rstart/client.cpp
2006-11-25 20:07:29 +00:00

125 lines
2.7 KiB
C++

XCOMM! /bin/sh
XCOMM $Xorg: client.cpp,v 1.4 2000/12/20 16:41:43 pookie Exp $
XCOMM
XCOMM Copyright (c) 1993 Quarterdeck Office Systems
XCOMM
XCOMM Permission to use, copy, modify, distribute, and sell this software
XCOMM and software and its documentation for any purpose is hereby granted
XCOMM without fee, provided that the above copyright notice appear in all
XCOMM copies and that both that copyright notice and this permission
XCOMM notice appear in supporting documentation, and that the name
XCOMM Quarterdeck Office Systems, Inc. not be used in advertising or
XCOMM publicity pertaining to distribution of this software without
XCOMM specific, written prior permission.
XCOMM
XCOMM THIS SOFTWARE IS PROVIDED "AS-IS". QUARTERDECK OFFICE SYSTEMS,
XCOMM INC., DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
XCOMM INCLUDING WITHOUT LIMITATION ALL IMPLIED WARRANTIES OF
XCOMM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
XCOMM NONINFRINGEMENT. IN NO EVENT SHALL QUARTERDECK OFFICE SYSTEMS,
XCOMM INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING SPECIAL,
XCOMM INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, DATA, OR
XCOMM PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND REGARDLESS
XCOMM OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, ARISING OUT
XCOMM OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
usage() {
if [ -n "$1" ]
then
echo "`basename $0`: $1"
fi
echo ""
echo "Usage: `basename $0` [options] hostname command args ..."
echo ""
echo "where options include:"
echo " -c context run command in the specified context"
echo " -g interpret command as a generic command"
echo " -l username run command as the specified user"
echo " -v enable verbose output"
exit 1
}
if [ $# -eq 0 ]
then
usage
fi
context=X
verbose=DETACH
name=
kind=CMD
while :
do
case $1 in
-c)
if [ $# -lt 2 ]
then
usage "-c option requires an argument"
fi
context=$2
shift; shift
;;
-g)
kind=GENERIC-CMD
shift
;;
-l)
if [ $# -lt 2 ]
then
usage "-l option requires an argument"
fi
name="-l $2"
shift; shift
;;
-v)
verbose=NODETACH
shift
;;
*)
if [ $# -eq 0 ]
then
usage "missing host name"
fi
host=$1
shift
break
;;
esac
done
if [ $# -eq 0 ]
then
usage "missing command"
fi
case $verbose in
DETACH)
exec > /dev/null
;;
esac
case "$DISPLAY" in
:*) disp="`uname -n`$DISPLAY"
echo expanded $DISPLAY to $disp
;;
*) disp="$DISPLAY"
;;
esac
(
cat << /
CONTEXT $context
MISC X DISPLAY=$disp
$kind $*
$verbose
/
xauth list $disp | sed 's/^/AUTH X11 /'
echo ""
) | RSHCMD $host $name SERVERNAME