1
0
mirror of synced 2026-01-14 15:55:51 +00:00

Translate run-medley from csh to POSIX sh.

This is just a first step: a direct translation for compatibility with
non-csh shells. The only change that I made in the logic was to conform
to the directory structure of this branch (`initfiles/local-init` ->
`greetfiles/LOCAL-INIT`).
This commit is contained in:
Abe Jellinek 2020-11-22 16:44:48 -08:00
parent ce4eae736e
commit ba65225017

339
run-medley Normal file → Executable file
View File

@ -1,4 +1,4 @@
#!/bin/tcsh -f
#!/bin/sh
#
# Run Medley
#
@ -14,213 +14,210 @@
# -noxns means suppress Lisp xns.
# LDESRCESYSOUT
# LDESOURCESYSOUT SYSOUT full-file name you want to run
# LDESOURCESYSOUT SYSOUT full-file name you want to run
# LDEDESTSYSOUT SYSOUT name for destination of SAVEVM/LOGOUT
# LDEDESTSYSOUT SYSOUT name for destination of SAVEVM/LOGOUT
# LDEKBDTYPE
# type2
# type3
# type4
# jle
# as3000j
# type2
# type3
# type4
# jle
# as3000j
# LDEFILETIMEOUT
setenv HOSTNAME `hostname`
setenv OSVERSION `uname -r`
export HOSTNAME=`hostname`
export OSVERSION=`uname -r`
# Directory variables are accessible from Lisp via UNIX-GETENV
if (! $?MEDLEYDIR ) setenv MEDLEYDIR `pwd`
if (! -d $MEDLEYDIR/loadups ) then
if [ -z "$MEDLEYDIR" ] ; then export MEDLEYDIR=`pwd`; fi
if [ ! -d $MEDLEYDIR/loadups ] ; then
echo MEDLEYDIR not found: "$MEDLEYDIR"
exit 1
endif
fi
if (! $?MAIKODIR ) then
setenv MAIKODIR $MEDLEYDIR/../maiko
if (! -d "$MAIKODIR"/bin ) then
if [ -z "$MAIKODIR" ] ; then
export MAIKODIR="$MEDLEYDIR/../maiko"
if [ ! -d "$MAIKODIR"/bin ] ; then
echo "MAIKODIR not found: $MAIKODIR"
exit 1
endif
endif
fi
fi
setenv LDEINIT "$MEDLEYDIR/initfiles/local-init"
export LDEINIT="$MEDLEYDIR/greetfiles/LOCAL-INIT"
set mem="-m 256" # Default, has to be set
#set geometry="-g 1060x790"
mem="-m 256" # Default, has to be set
#geometry="-g 1060x790"
# MBA screensize
set geometry="-g 1440x900"
set screensize="-sc 1440x900"
setenv LDEKBDTYPE x
set ICONSPEC=" "
geometry="-g 1440x900"
screensize="-sc 1440x900"
export LDEKBDTYPE=x
ICONSPEC=" "
setenv LDEFILETIMEOUT 60
setenv TAKEXNSDOWN 0
setenv LDELISPXNS 0
export LDEFILETIMEOUT=60
export TAKEXNSDOWN=0
export 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
while [ "$#" -ne 0 ]; do
case "$1" in
"-m")
mem="-m $2"
shift
;;
"-xlisp")
export LDESRCESYSOUT="$MEDLEYDIR/loadups/xlisp.sysout"
;;
"-lisp")
export LDESRCESYSOUT="$MEDLEYDIR/loadups/lisp.sysout"
;;
"-xfull35")
export LDESRCESYSOUT="$MEDLEYDIR/loadups/xfull35.sysout"
;;
"-full")
export LDESRCESYSOUT="$MEDLEYDIR/loadups/full.sysout"
;;
"-lfg" | "-lfg35" | "-xlfg35")
export LDESRCESYSOUT="$LFGPARSERDIR/release/lfg35.sysout"
ICONSPEC="-iconbitmap $LFGPARSERDIR/release/lfg.xbm -icontitle Xerox"
;;
"-nogreet")
export LDEINIT=""
;;
"-greet")
export LDEINIT="$2"
shift
;;
"-xns")
export TAKEXNSDOWN=1
export LDELISPXNS=1
;;
"-noxns")
export TAKEXNSDOWN=0
export LDELISPXNS=0
;;
"-raw")
unset DISPLAY
;;
"-geometry")
geometry="-g $2"
shift
;;
"-screensize")
screensize="-sc $2"
shift
;;
"-display")
export DISPLAY=$2
shift
;;
"-t")
xtimeout=$2
shift
;;
"-prog")
progparam=$2
shift
;;
"-vmem")
export LDEDESTSYSOUT=$2
shift
;;
"-kbd")
export LDEKBDTYPE=$2
shift
;;
*)
# anything else is a public sysout name
case "$1" in
"-"*)
name=`expr substr $1 2 999`
export LDESRCESYSOUT="$MEDLEYDIR/loadups/${name}.sysout"
;;
*) # not an option so must be a sysout name
export LDESRCESYSOUT=$1 ;;
esac
;;
esac
shift
done
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 [ -z "$LDEDESTSYSOUT" ] ; then
if [ -f /$HOSTNAME/$LOGNAME/lisp.virtualmem ]; then
export LDEDESTSYSOUT=/$HOSTNAME/$LOGNAME/lisp.virtualmem
elif [ -f ~/lisp.virtualmem ]; then
export LDEDESTSYSOUT=~/lisp.virtualmem
elif [ -d /$HOSTNAME/$LOGNAME ]; then
export LDEDESTSYSOUT=/$HOSTNAME/$LOGNAME/lisp.virtualmem
fi
fi
if (! $?LDESRCESYSOUT) then
setenv LDESRCESYSOUT $LDEDESTSYSOUT
endif
if [ -z "$LDESRCESYSOUT" ] ; then
export LDESRCESYSOUT="$LDEDESTSYSOUT"
fi
if (! $?LDEKBDTYPE) then
# switch (`/usr/bin/hostinfo keyboardtype`)
# endsw
endif
# if [ ! -z "$LDEKBDTYPE" ] ; then
# # switch (`/usr/bin/hostinfo keyboardtype`)
# # endsw
# fi
echo "keyboard type is " $LDEKBDTYPE
setenv INMEDLEY 1
export INMEDLEY=1
echo "sysout is " $LDESRCESYSOUT
#set version = `medley-lisp-version $LDESRCESYSOUT`
set version = "35010"
if ($status) exit
#version = `medley-lisp-version $LDESRCESYSOUT`
version="35010"
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
if [ "$LDELISPXNS" -ne "0" ] ; then
prog="ldeether"
else
prog="lde"
echo "running without xns protocols"
fi
case "$version" in
"35000")
version="3.5"
;;
"35010")
version="3.501"
;;
*)
version="3.5"
;;
esac
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
case "$version" in
"3.5"|"3.501")
# if ${?DISPLAY} then # we are running under X
$prog $mem $geometry $screensize $ICONSPEC
# else $prog $mem
endif
breaksw
export PATH=.:"$PATH"
old_wd=`pwd`
cd "$MAIKODIR"/bin
export PATH=$MAIKODIR/`osversion`.`machinetype`:"$PATH"
cd $old_wd
# if ${?DISPLAY} then # we are running under X
$prog $mem $geometry $screensize $ICONSPEC
# else $prog $mem
# endif
;;
*) echo HMM
esac
endsw
#
# Now we are done, so clean up after ourselves
#
cleanup:
if ${?DISPLAY} then
# do X cleanup
else
# reset
endif
# if ${?DISPLAY} then
# # do X cleanup
# else
# # reset
# endif