From ba652250170c0d85bd87628cb3c386a85feb07d8 Mon Sep 17 00:00:00 2001 From: Abe Jellinek Date: Sun, 22 Nov 2020 16:44:48 -0800 Subject: [PATCH] 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`). --- run-medley | 339 ++++++++++++++++++++++++++--------------------------- 1 file changed, 168 insertions(+), 171 deletions(-) mode change 100644 => 100755 run-medley diff --git a/run-medley b/run-medley old mode 100644 new mode 100755 index 4f026d54..9a58f644 --- a/run-medley +++ b/run-medley @@ -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