* Make medley.sh and its associated scripts POSIX compliant - i.e., debashify them * Added config file for medley script, medley now reads from config file and prepends arguemnts from file to the copmmand line arguments * WIP. Updates to medley.sh scripts. * WIP. More on medley.sh and friends update. * WIP. Medley redo * WIP. Debugging new medley scripts * Renamed medley.sh/medley.command to be medley_main.sh. Added code to compile single medley.sh/medley.command script by inlining all of the source'd medley_*.sh files. * Add temp fix for cygwin Issue #1685 * Minor fixup to medley_utils.sh; take debug code out out of run_medley * Add README to medley directory to explain how to compile medley.sh (medley.command). * Ooops. This time really adding the README file to the medley directory explaining how to compile medley.sh (medley.command) * Update loadup- scripts to use updated medley scripts rather than run-medley * Fix default setting of $config_file in medley_configfile.sh * Redo medley compile to pick up last commikt * Fixing how maiko exe is found and sysout argument error processing - both issues discovered testing on MAcOS * In medley_configfile, replace echo with printf %s because echo - does not work in zsh * Supress config file on loadups calls to Medley * Add oldschool support (use original run-medley) to loadup scripts; improve FAILURE detection so loadup-all won't proceed once one of the components fails * Add in medley_args.sh add -prog as synonym to --maikoprog to aid in loadup scripts; in medley_run.sh script try to get a good exit code for call to maiko, especially useful for loadup scripts * Run loadup scripts thru shellcheck and update as necessary to make Posix compliant * Get rid of -nt comparisons in loadup-setup.sh because they are not posix-complaint. They were not really needed anyway. * Removing (for now) use of lde exit codes to decide FAILURE case in loadup-setup.sh since exit codes from lde apperar to be inverted on MacOS. * Update medley man page. Add - functionality to more args is medley_args.sh * Compile medley.sh with changes from last commit * Ooops. Left medley_args.sh changes out of last commit. Rectifying here. * Added support for LDEKEYBOARDTYPE to medley_run to match run-medley * Add to medley.sh: auto numbered id's and titles with id's inserted * Cleanup some shellcheck issues in medley_main.sh * fix maiko args -nh-xxx. were -nethub-xxxx. In medley_run.sh * Overhaul handling of pass-on args to manage the quoting issues prevelant in the previous implementation * Cleanup minor shellcheck issues in medley_*.sh scripts * Add underscore as character allowed in ids - makes things clearer when id used with + * Add a self-numbering id to medley calls in loadup scripts * Put workaround in medley_run.sh for Issue #1702 - issues with sysout arg processing in Maiko * Oops. messed up LDESRCSYSOUT in last commit. should be LDESOURCESYSOUT * compile medley.sh
245 lines
12 KiB
Markdown
245 lines
12 KiB
Markdown
% MEDLEY(1) | Start Medley Interlisp
|
|
|
|
---
|
|
adjusting: l
|
|
hyphenate: false
|
|
---
|
|
|
|
NAME
|
|
====
|
|
|
|
**medley** — starts up Medley Interlisp
|
|
|
|
SYNOPSIS
|
|
========
|
|
|
|
| **medley** \[ flags ... ] \[ *SYSOUT_FILE* ] \[ \-\- *PASS_ON_ARGS* ]
|
|
|
|
DESCRIPTION
|
|
===========
|
|
|
|
Starts Medley Interlisp in a window.
|
|
|
|
OPTIONS
|
|
=======
|
|
|
|
**MEDLEYDIR** is an environment variable set by Medley and used by many of the options described below.
|
|
MEDLEYDIR is the top level directory of the Medley installation that contains the specific medley script that
|
|
is invoked after all symbolic links are resolved. In the standard global installation this will
|
|
be /usr/local/interlisp/medley. But Medley can be installed in multiple places on any given machine and
|
|
hence MEDLEYDIR is computed on each invocation of medley.
|
|
|
|
|
|
Flags
|
|
-----
|
|
|
|
|
|
|
|
-h, \-\-help
|
|
: Prints out a brief summary of the flags and arguments to medley.
|
|
|
|
-z, \-\-man
|
|
: Show the man page for medley
|
|
|
|
-c [*FILE* | -], \-\-config [*FILE* | -]
|
|
: Use *FILE* as the config file for this run of Medley. See information on *CONFIG FILE* below. If *FILE* is "-",
|
|
then suppress the use of a config file for this run of Medley.
|
|
|
|
-f, \-\-full
|
|
: Start Medley from the standard "full" sysout. full.sysout includes a complete Interlisp and CommonLisp environment
|
|
with a standard set of development tools. It does not include any of the applications built using Medley.
|
|
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
|
|
|
-l, \-\-lisp
|
|
: Start Medley from the standard "lisp" sysout. lisp.sysout only includes the basic Interlisp and
|
|
CommonLisp environment.
|
|
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
|
|
|
-a, \-\-apps
|
|
: Start Medley from the standard "apps" sysout. apps.sysout includes everything in full.sysout plus Medley
|
|
applications including Notecards, Rooms and CLOS. It also includes pre-installed links to key Medley
|
|
documentation.
|
|
(See *SYSOUT_FILE* below for more information on starting sysouts.)
|
|
|
|
-u, \-\-continue
|
|
: Nullify any prior setting of the sysout file (e.g., from the config file) - causing Medley to start from
|
|
the virtual memory file resulting from the previous invocation (with the same values for --id and --logindir),
|
|
if any. If there is no matching virtual memory file, Medley will start from the full.sysout (see -f/--full above).
|
|
Equivalent to "-y -". (See *SYSOUT FILE* section below.)
|
|
|
|
-y [*SYSOUT_FILE* | -], \-\-sysout [*SYSOUT-FILE* | -]
|
|
: Start Medley from the specified *SYSOUT-FILE*. This is an alternative to specifying the *SYSOUT-FILE*
|
|
as the last argument on the command line (but before any *PASS_ON_ARGS*). It can be used to specify the
|
|
*SYSOUT-FILE* in the config file (see information on *CONFIG FILE* below). If *SYSOUT-FILE* is "-", then
|
|
any prior setting of the sysout file (e.g., from the config file) is nullified (see -u/--continue above).
|
|
(See *SYSOUT FILE* section below.)
|
|
|
|
-e [+ | -], \-\-interlisp [+ | -]
|
|
: If value is "+" or no value, make the initial Exec window within Medley be an Interlisp Exec.
|
|
If value is "-", make the initial Exec window be the default XCL Exec.
|
|
This flag applies only when the --apps flag is used.
|
|
|
|
-n [+ | -], \-\-noscroll [+ | -]
|
|
: Medley ordinarily displays scroll bars to enable the user to pan the Medley virtual display within the
|
|
Medley window. This is true even when the entire virtual display fits within the window. Specifying
|
|
"-n +" (--noscroll +) turns off scroll bars. Specifying "-n -" (--scroll -) turns on scroll bars.
|
|
Specifying -n (--noscroll) with no value is equivalent to specifying "--noscroll +". Default
|
|
is scroll bars off. Note: If scroll bars are off and the virtual screen is larger
|
|
than the window, there will be no way to pan to the non-visible parts of the virtual display.
|
|
|
|
-g [*WxH* | -], \-\-geometry [*WxH* | -]
|
|
: Sets the size of the X Window (or VNC window) that Medley runs in to be Width x Height. (Full X Windows
|
|
geomtery specification with +X+Y is not currently supported).
|
|
If a value of "-" is given, geometry is set to the default value.
|
|
If \-\-geometry is not specified but \-\-screensize is,
|
|
then the window size will be determined based on the \-\-screensize values and the \-\-noscroll flag. If neither
|
|
\-\-geometry nor \-\-screensize is provided, then the window size is set to 1440x900 if \-\-noscroll is set and 1462x922
|
|
if \-\-noscroll is not set. (Also see note below under *CONFIG FILE* on the use of geometry and screensize
|
|
in config files.)
|
|
|
|
-s [*WxH* | -], \-\-screensize [*WxH* | -]
|
|
: Sets the size of the virtual display as seen from Medley's point of view.
|
|
If a value of "-" is given, screensize is set to the default value.
|
|
The Medley window is an unscaled viewport onto this virtual display. If \-\-screensize is not specified but
|
|
\-\-geometry is, then the virtual display size will be set so that the entire virtual display fits into the given
|
|
window geometry. If neither \-\-screensize nor \-\-geometry is provided, then the screen size is set to 1440x900.
|
|
(Also see note below under *CONFIG FILE* on the use of geometry and screensize in config files.)
|
|
|
|
-ps [*N* | -], --pixelscale [*N* | -] \*\* **Applicable only when display is SDL-based (e.g., on Windows/Cygwin)** \*\*
|
|
: Sets the pixel scaling factor to *N*. If value of "-" is given, the pixel scale factor is set to its default of 1.
|
|
|
|
-t [*STRING* | -], \-\-title [*STRING* | -]
|
|
: Use STRING as title of Medley window. If the value of "-" is given, sets the title to its default value ("Medley Interlisp").
|
|
Ignored when when the \-\-vnc flag is set.
|
|
|
|
-d [*:N* | -], \-\-display [*:N* | -]
|
|
: Use X display :N. If value is "-", reset display to its default value. Default value is the value of $DISPLAY.
|
|
On platforms that support X Windows as well as SDL, the value of -d (--display) should
|
|
be set to "SDL" to select using SDL instead of X Windows. This flag is ignored on the Windows/Cygwin platform and when the \-\-vnc flag is
|
|
set on Windows System for Linux.
|
|
|
|
-v [+ | -] , \-\-vnc [+ | -] \*\* **Applicable only to WSL installations** \*\*
|
|
: If value is "+" or no value is given, then use a VNC window running on the Windows side instead of an X window. If value is "-", then do not
|
|
use a VNC window, relying instead on a standard X Window.
|
|
A VNC window will folllow the Windows desktop scaling setting allowing
|
|
for much more usable Medley on high resolution displays. On WSL, X windows
|
|
do not scale well. This flag is always set for WSL1 installations.
|
|
|
|
-i [*ID_STRING* | - | \-\-], \-\-id [*ID_STRING* | - | \-\-]
|
|
: Use ID_STRING as the id for this run of Medley, unless ID_STRING is "-", "\-\-", or "\-\-\-".
|
|
If ID_STRING is "-", then reset the id to "default" (e.g., if it was previously set in the
|
|
config file). If ID_STRING is "\-\-", then use the basename of $MEDLEYDIR as the id.
|
|
If ID_STRING is "\-\-\-", then use the basename of the parent directory of $MEDLEYDIR as the id.
|
|
Only one instance of Medley with a given id can run at a time.
|
|
The id is used to distinguish the virtual memory stores so that multiple
|
|
instances of Medley can run simultaneously. Default id is "default".
|
|
|
|
-m [*N* | -], \-\-mem [*N* | -]
|
|
: Set Medley to run in *N* MB of virtual memory. Defaults to 256MB. If a value of "-" is given, resets
|
|
to default value.
|
|
|
|
-p [*FILE* | -], \-\-vmem [*FILE* | -]
|
|
: Use FILE as the Medley virtual memory (vmem) store. FILE must be writeable by the current user.
|
|
Care must be taken not to use the same vmem FILE for two instances of Medley running simultaneously.
|
|
The \-\-id flag will not protect against vmem collisions when the \-\-vmem flag is used.
|
|
If the value "-" is given, then resets the vmem file to the default.
|
|
Default is to store the vmem in LOGINDIR/vmem/lisp_III.virtualmem, where III is the id of this
|
|
Medley run (see \-\-id flag above). See \-\-logindir below for setting of LOGINDIR.
|
|
|
|
-r \[*FILE* | -], \-\-greet \[*FILE* | -]
|
|
: Use FILE as the Medley greetfile, unless FILE is "-" in which case
|
|
Medley will start up without using a greetfile. The default Medley greetfile
|
|
is $MEDLEYDIR/greetfiles/MEDLEYDIR-INIT, except when the \-\-apps flag is used
|
|
in which case it is $MEDLEYDIR/greetfiles/APPS-INIT. On Windows/Cygwin installations, *FILE* is
|
|
specified in the Medley file system, not the host Windows file system.
|
|
|
|
-x \[*DIR* | - | --], \-\-logindir \[*DIR* | - | --]
|
|
: Use DIR as LOGINDIR in Medley. If the value is "--", use
|
|
\$MEDLEYDIR/logindir as LOGINDIR.
|
|
If a value of "-" is given, then reset LOGINDIR to its default value.
|
|
DIR (or \$MEDLEYDIR/logindir) must be writeable by the current user.
|
|
LOGINDIR defaults to \$HOME/il. LOGINDIR is used by Medley as the working directory on start-up
|
|
and where it loads any "personal" initialization file from. On Windows/Cygwin installations, *FILE* is
|
|
specified in the Medley file system, not the host Windows file system.
|
|
|
|
-nh *Host:Port:Mac:Debug*, \-\-nethub *Host:Port:Mac:Debug*
|
|
: Set the parameters for using Nethub XNS networking. *Host* is the full domain name of the nethub host. *Port* is the port on *Host* that nethub is using.
|
|
*Mac* is the Mac address that this instance of Medley should use when contacting the nethub host. *Debug* is the level of nethub debug information
|
|
that should be printed on stdout (value is 0, 1, or 2). A *Host* value is required and serves to turn nethub functionality on. *Port*, *Mac* and *Debug*
|
|
parameters are optional and will default if left off. Finally, if any of the parameters have a value of "-", any previous setting (e.g., in a config file)
|
|
for the parameter will be reset to the default value - which in the case of *Host* is the null string, turning nethub functionality off.
|
|
|
|
-nf, -NF, --nofork
|
|
: No fork. Relevant only to the Medley loadup workflow.
|
|
|
|
-prog *EXE*, --maikoprog *EXE*
|
|
: Use *EXE* as the basename of the Maiko executable. Relevant only to the Medley loadup workflow.
|
|
|
|
--maikodir *DIR*
|
|
: Use *DIR* as the directory containing the Maiko emulator. For testing purposes only.
|
|
|
|
|
|
Other Options
|
|
-------------
|
|
|
|
|
|
*SYSOUT_FILE*
|
|
: The pathname of the file to use as a sysout for Medley to start from. If SYSOUT_FILE is not
|
|
provided and none of the flags (\-\-apps, \-\-full, \-\-lisp) is used, then Medley will start from
|
|
the saved virtual memory file from the previous session with the same ID_STRING as this run.
|
|
If no such virtual memory file exists, then Medley will start from the standard full.sysout
|
|
(equivalent to specifying the \-\-full flag). On Windows (Docker) installations, *SYSOUT_FILE* is
|
|
specified in the Medley file system, not the host Windows file system.
|
|
|
|
*PASS_ON_ARGS*
|
|
: All arguments after the "\-\-" flag, are passed unaltered to the Maiko emulator.
|
|
|
|
|
|
CONFIG FILE
|
|
===========
|
|
A config file can be used to "pre-specify" any of the above command line arguments.
|
|
The config file consists of command line arguments (flags or flag-value pairs), *one per line*.
|
|
These arguments are read from the config file and prepended to the arguments actually given on
|
|
the command line. Since later arguments override earlier arguments, any argument actually given
|
|
on the command line will override a conflicting argument given in the config file.
|
|
|
|
Unless specified using the -c (--config) argument, the default config file will be $MEDLEYDIR/.medley_config,
|
|
if it exists, and $HOME/.medley_config, otherwise.
|
|
|
|
Specifying, "-c -" or "--config -" on the command line will suppress the use of config files for the
|
|
current run of Medley.
|
|
|
|
*Note:* care must be taken when using -g (--geometry) and/or -s (--screensize) arguments in config files.
|
|
If only one of these is specified, then the other is conputed. But if both are specified, then the specified
|
|
dimensions are used as given. Unexpected results can arise if one is specified in the config file
|
|
but the other is specified on the command line. In this case, the two specified dimensions will be used as given.
|
|
It will not be the case, as might be expected, that the dimension given in the config file will be overridden
|
|
by a dimension computed from the dimension given on the command line.
|
|
|
|
|
|
OTHER FILES
|
|
===========
|
|
|
|
\$HOME/il
|
|
: Default Medley LOGINDIR
|
|
|
|
\$HOME/il/vmem/lisp.virtualmem
|
|
: Default virtual memory file
|
|
|
|
\$HOME/il/INIT(.LCOM)
|
|
: Default personal init file
|
|
|
|
\$MEDLEYDIR/greetfiles/MEDLEYDIR-INIT(.LCOM)
|
|
: Default Medley greetfile
|
|
|
|
|
|
BUGS
|
|
====
|
|
|
|
See GitHub Issues: <https://github.com/Interlisp/medley/issues>
|
|
|
|
COPYRIGHT
|
|
=========
|
|
|
|
Copyright(c) 2023-2024 by Interlisp.org
|