#!/bin/tcsh -f # # Run Medley # # Syntax: run-medley [-nogreet][-xns][-noxns] [-geometry pixelgeometry] # [-display xdisplay-device] [-screensize pixelgeometry] # [-raw] [-t xtimeout][-prog executable-program] # [-vmem savevmemfilename] | # [-m memorylimit] [-kbd keyboardtype] [-key key] # [sysoutfilename | -lfg | -lisp | -full | # -{name of any in the sysouts} ] # # -xns means leave unix xns running # -noxns means suppress Lisp xns. # LDESRCESYSOUT # LDESOURCESYSOUT SYSOUT full-file name you want to run # LDEDESTSYSOUT SYSOUT name for destination of SAVEVM/LOGOUT # LDEKBDTYPE # type2 # type3 # type4 # jle # as3000j # LDEFILETIMEOUT setenv HOSTNAME `hostname` setenv OSVERSION `uname -r` # Directory variables are accessible from Lisp via UNIX-GETENV if (! $?MEDLEYDIR ) setenv MEDLEYDIR `pwd` if (! -d $MEDLEYDIR/loadups ) then echo MEDLEYDIR not found: "$MEDLEYDIR" exit 1 endif if (! $?MAIKODIR ) then setenv MAIKODIR $MEDLEYDIR/../maiko if (! -d "$MAIKODIR"/bin ) then echo "MAIKODIR not found: $MAIKODIR" exit 1 endif endif setenv LDEINIT "$MEDLEYDIR/initfiles/local-init" set mem="-m 256" # Default, has to be set #set geometry="-g 1060x790" # MBA screensize set geometry="-g 1440x900" set screensize="-sc 1440x900" setenv LDEKBDTYPE x set ICONSPEC=" " setenv LDEFILETIMEOUT 60 setenv TAKEXNSDOWN 0 setenv LDELISPXNS 0 #default is no lispxns if ($#argv != 0) then while ("$1" != "") switch ($1) case "-m": set mem="-m $2" shift breaksw case "-xlisp": setenv LDESRCESYSOUT "$MEDLEYDIR/loadups/xlisp.sysout" breaksw case "-lisp": setenv LDESRCESYSOUT "$MEDLEYDIR/loadups/lisp.sysout" breaksw case "-xfull35": setenv LDESRCESYSOUT "$MEDLEYDIR/loadups/xfull35.sysout" breaksw case "-full": setenv LDESRCESYSOUT "$MEDLEYDIR/loadups/full.sysout" breaksw case "-lfg": case "-lfg35": case "-xlfg35": setenv LDESRCESYSOUT "$LFGPARSERDIR/release/lfg35.sysout" set ICONSPEC = "-iconbitmap $LFGPARSERDIR/release/lfg.xbm -icontitle Xerox" breaksw case "-nogreet": setenv LDEINIT "" breaksw case "-greet" setenv LDEINIT "$2" shift breaksw case "-xns": setenv TAKEXNSDOWN 1 setenv LDELISPXNS 1 breaksw case "-noxns": setenv TAKEXNSDOWN 0 setenv LDELISPXNS 0 breaksw case "-raw": unsetenv DISPLAY breaksw case "-geometry": set geometry="-g $2" shift breaksw case "-screensize": set screensize="-sc $2" shift breaksw case "-display": setenv DISPLAY $2 shift breaksw case "-t": set xtimeout=$2 shift breaksw case "-prog": set progparam=$2 shift breaksw case "-vmem": setenv LDEDESTSYSOUT $2 shift breaksw case "-kbd": setenv LDEKBDTYPE $2 shift breaksw default: # anything else is a public sysout name if (`expr index "$1" "[-]"` == 1) then set name=`expr substr $1 2 999` setenv LDESRCESYSOUT "$MEDLEYDIR/loadups/${name}.sysout" else # not an option so must be a sysout name 0 setenv LDESRCESYSOUT $1 endif breaksw endsw shift end else # no options specified endif if ($?LDEDESTSYSOUT) then if (-f /$HOSTNAME/$LOGNAME/lisp.virtualmem) then setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem else if (-f ~/lisp.virtualmem) then setenv LDEDESTSYSOUT ~/lisp.virtualmem else if (-d /$HOSTNAME/$LOGNAME) then setenv LDEDESTSYSOUT /$HOSTNAME/$LOGNAME/lisp.virtualmem endif endif if (! $?LDESRCESYSOUT) then setenv LDESRCESYSOUT $LDEDESTSYSOUT endif if (! $?LDEKBDTYPE) then # switch (`/usr/bin/hostinfo keyboardtype`) # endsw endif echo "keyboard type is " $LDEKBDTYPE setenv INMEDLEY 1 echo "sysout is " $LDESRCESYSOUT #set version = `medley-lisp-version $LDESRCESYSOUT` set version = "35010" if ($status) exit if ($LDELISPXNS) then set prog="ldeether" else set prog="lde" echo "running without xns protocols" endif switch ("$version") case "35000": set version = "3.5" breaksw case "35010": set version = "3.501" breaksw default: set version = "3.5" endsw echo "using emulator version $version" switch ("$version") case "3.5": case "3.501": setenv PATH .:"$PATH" pushd "$MAIKODIR"/bin setenv PATH $MAIKODIR/`osversion`.`machinetype`:"$PATH" popd # if ${?DISPLAY} then # we are running under X $prog $mem $geometry $screensize $ICONSPEC # else $prog $mem endif breaksw endsw # # Now we are done, so clean up after ourselves # cleanup: if ${?DISPLAY} then # do X cleanup else # reset endif