1
0
mirror of synced 2026-01-20 18:17:21 +00:00
Interlisp.medley/scripts/medley/medley_usage.sh
Frank Halasz 7f3a3d1f81
Fix Issue #2148: loadups fail on WSL1 with Xvnc server errors - fixed by adding new flag to medley script, use this flag in loadup script (#2163)
* Fix Issue #2155 (loadup -f -b -x fails can't find full.sysout).  Reordered loadup so that the sysouts are copied to loadups before loadup-aux and loadup-db are run, and that the product of loadup-aux are copied to loadups before loadup-db is run -- all to make sure that the right prerequisites are available in loadups when needed.  Also forced a run of loadup-aux if full.sysout is newer than exports.all when -db is specified.

* Fix Issue 2148 - loadups fail on WSL1 with Xvnc server error.  Root cause of 2148 is that certain Medley sessions in loadups run very quickly - less that a second or 2.  This causes the medley script to improperly detect an Xvnc server error.  Fixed by adding a cli flag --automation that forces the medley script to skip the check for Xvnc server errors.  Changed loadup script to call medley with this flag set.  Also add a cl flag to loadup --forcevnc that forces loadup to use vnc even on WSL2.  This is intended for testing purposes only.
2025-06-16 20:23:40 -07:00

141 lines
4.4 KiB
Bash

#!only-to-be-sourced
# shellcheck shell=sh
# shellcheck disable=SC2154
###############################################################################
#
# medley_useage.sh - script defining the "usage" for medley.sh script.
#
# !!!! This script is meant to be SOURCEd from the scripts/medley.sh script.
# !!!! It should not be run as a standlone script.
#
# 2023-01-21 Frank Halasz
#
# Copyright 2023 Interlisp.org
#
###############################################################################
PAGER=$( if [ -n "$(which more)" ]; then echo "more"; else echo "cat"; fi)
usage() {
usage_msg_path=/tmp/msg-$$
if [ "${wsl}" = true ];
then
wsl_incl="+w"
wsl_excl="-w"
else
wsl_incl="-w"
wsl_excl="+w"
fi
if [ "${docker}" = true ];
then
docker_incl="+d"
docker_excl="-d"
else
docker_incl="-d"
docker_excl="+d"
fi
if [ "${windows}" = true ];
then
windows_incl="+W"
windows_excl="-W"
else
windows_incl="-W"
windows_excl="+W"
fi
if [ $# -ne 0 ];
then
full_msg="In ${args_stage}:
$1"
{ echo; output_error_msg "${full_msg}"; echo; } >> "${usage_msg_path}"
else
touch "${usage_msg_path}"
fi
cat "${usage_msg_path}" - <<EOF \
| sed -e "/^${docker_excl}/d" -e "s/^${docker_incl}/ /" \
| sed -e "/^${wsl_excl}/d" -e "s/^${wsl_incl}/ /" \
| sed -e "/^${windows_excl}/d" -e "s/^${windows_incl}/ /" \
| ${PAGER}
Usage: medley [flags] [sysout] [--] [pass_args ...]
Note: MEDLEYDIR is the directory at the top of the code tree where this script is executed from
after all symbolic links have been resolved. For standard installations this will be
/usr/local/interlisp/medley. For "local" installations this will be the "medley" sub-directory
under the directory into which the Medley distribution was installed.
flags:
-h | --help : print this usage information
-z | --man : show the man page for medley
-c FILE | --config FILE : use FILE as the config file (default: ~/.medley_config)
-f | --full : start Medley from the "full" sysout
-l | --lisp : start Medley from the "lisp" sysout
-a | --apps : start Medley from the "apps" sysout
-u | --continue : start Medley from the vmem file from previous Medley run
-y FILE | --sysout FILE : start Medley using FILE as sysout
-e | --interlisp : (for apps.sysout only) Start in the Interlisp exec
-n | --noscroll : do not use scroll bars in Medley window
-g WxH | --geometry WxH : set the window geometry to Width x Height.
-s WxH | --screensize WxH : set the Medley screen size to be Width x Height
-ps N | --pixelscale N : use N as the pixel scale factor - for SDL display only
-t STRING | --title STRING : use STRING as title of window
-d :N | --display :N : use X display :N
-v | --vnc : Use a VNC window instead of an X window (Not available: MacOS & Windows/Cygwin)
-i STRING | --id STRING : use STRING as the id for this run of Medley (default: default)
-m N | --mem N : set Medley memory size to N
-k FILE | --vmem FILE : use FILE as the Medley virtual memory store.
-r FILE | --greet FILE : use FILE as the Medley greetfile.
-r - | --greet - : do not use a greetfile
-x DIR | --logindir DIR : use DIR as LOGINDIR in Medley
-x - | --logindir - : use MEDLEYDIR/logindir as LOGINDIR in Medley
-am | --automation : this call to medley is being used in automation, adjust timings. Relevant in -vnc case only.
-cm FILE | --rem.cm FILE : use FILE as the REM.CM when starting up Medley. FILE must be absolute pathname.
-cm - | --rem.cm - : do not use an REM.CM. Negate any prior setting, e.g., from config file.
-cc FILE | --repeat FILE : as long as FILE exists and is greater than 0 length, repeat Medley run
using FILE as REM.CM
sysout:
The pathname of the file to use as a sysout for Medley to start from.
If sysout is not provided and none of the flags [-a, -f & -l] is used, then Medley will start from
the saved virtual memory file for the previous run with the sane id as this run.
pass_args:
All arguments after the "--" flag, are passed unaltered to the Maiko emulator.
EOF
exit 1
}