* 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.
This PR is an extensive revamp of the loadup scripts including the following changes:
New omnibus script scripts/loadup which is meant to be the single interface to the loadup system. The man page for this script can be found here: https://online.interlisp.org/downloads/man_loadup.html
The new loadup script allows you to restart the loadup process from any particular stage - init, mid, lisp, full, etc. For example, you can start the loadup from an existing init-mid.sysout and have it run thru creating the full.sysout. The call for this would be: ./scripts/loadup --target full --start mid. (See man page for all options to the loadup script as well as examples of their use.)
In order to facilitate this target/start feature, the loadup workdir has been moved to a single location per MEDLEYDIR, specifically to MEDLEDIR/loadups/build. (Previously, it was different for every invocation in /tmp/loadups-$$)
When restarting the loadup from, say, lisp.sysout, the script will look for the lisp.sysout to start from first in MEDLEYDIR/loadups and then in MEDLEYDIR/loadups/build. If the starting sysout is found in loadups, it will be copied (non-versioned) into the workdir before doing the loadup, overwriting whatever is already there.
There is now a lock (MEDLEYDIR/loadups/build/lock) that prevents concurrent loadups from running (and very occassionally needs to be manually removed).
At successful completion of a loadup run, the created .sysouts and other files are moved into the loadups directory as before (unless the --nocopy option is specified). BUT the build files - including the dribble files - are left in the working directory (i.e., in loadups/build)
The loadup script now supersedes the former loadup-all.sh, loadup-full.sh and loadup-db.sh scripts. But I have left in their place scripts that call the new loadup script with the right options. loadup-all.sh is now just a link to the single loadup script, who's options are (hopefully) a superset of loadup-all.sh.
All of the worker scripts (e.g., loadup-full-from-lisp.sh) have been updated to use better mechanisms to catch and report errors, including the new (LOGOUT T EXITCODE) feature. The main script has been updated to better catch errors in these worker scripts when they do happen.
You can now specify a MAIKODIR for the loadup, either using the MAIKODIR env variable or thru the --maikodir command line option.
All of the loadup scripts have been moved down one level into scripts/loadups. But there are links from the scripts/ directory into the scripts/loadups directory for all of the top-level legacy scripts - loadup-all.sh, loadup-db.sh, loadup-full.sh so that you do not have to change your own scripts unless you need to use some of the new features. More importantly, none of the github workflows need to change right now.
The SYSOUTCOMMITS mechanism had to be changed since there is no guarantee that e.g., lisp.sysout and full.sysout are built on the same commit. So (ASSOC 'MEDLEY SYSOUTCOMMITS) now returns an assoc list of sysouts, e.g., ((INIT "aaa")(LISP "bbb")(FULL "ccc")(APPS "ddd")), showing the commits for the various layers of the loadup.
The new loadup scheme allows different sysouts to be created from different commits, so there is an issue with RDSYS (and RDSYS.LCOM) being out of sync with one or more of the sysout in loadups. RDSYS(.LCOM) are copied into library when ever a loadup of the Init stage completes successfully (unless the -nocopy option is specified). The only way to solve this issue when it arises is to do a complete loadup from starter.sysout to full.sysout (or apps.sysout) to ensure evrything is built on the same commit.
* Fix Issue 2072: update do_hcfiles.sh to use new rem.cm argument to medley script. Also update medley script to print out the REM.CM file used (if any).
* Update buildReleaseIncDocker.yml to account for the change on interlisp/online repo from 'master' to 'main' as primary branch
* Do compile.sh after update to medley-run.sh to add REM.CM to printout when using the medley command.
- Fixed INTERPRET.REM.CM so that it no longer tries to load the file pointed to by LDEINIT and instead loads the file pointed to by LDEREMCM.
LDEINIT remains the file used by greet.
- Adjusted the medley script to have a new argument -cm (or --rem.cm) which sets LDEREMCM as appropriate before launching lde.
- Updated the loadup scripts as required to use this new -cm argument when calling medley.
Finally, added a new feature to the medley script -cc (or --repeat) whereby which when medley finishes it checks for a nonzero file given as the argument to -cc. If that file exists, medley is run again (i.e., repeated) with LDEREMCM set to that file. This repeats until this file no longer exists or is zero-length. The file can be found as the vale of LDEREPEATCM so that each invocation of medley can modify (or delete) this file so as to change the subsequent run of medley.
In scripts/medley/medley_vnc.sh, update references to Xvnc and vncviewer to their tigervnc-specific versions Xtigervnc and xtigervncviewer. Fixes Issue#1841.
* 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
* Add cygwin-sdl build to buildLoadup workflow; add installer for cygwin-sdl on windows
* Change how buildLoadup computes latest maiko release to accomodate draft releases
* Fix call to gh release list for maiko
* Debugging call to gh release list for maiko
* Debugging call to gh release list for maiko #2
* Debugging call to gh release list for maiko #3
* Debugging call to gh release list for maiko #4
* Debugging call to gh release list for maiko #5
* Debugging call to gh release list for maiko #6
* Change maiko downloads to accoiunt for draft releases
* Change maiko downloads to account for draft releases #2
* Specify shell (powershell) for Download cygwin installler
* Few cleanup items on cygwin-install
* Update ShellWhich to use command -v instead of which because which returns to much crap on cygwin and command -v is more portable overall
* Switch from using medley-loadup & -runtime tars to medley-full-*.tgz so we get full release incl notecards; delete maiko on install and replace with cygwin maiko
* Make sure Notecards doesn't try to load its HASH fileon PostGreet - for apps.sysout
* Add xdg-utils to cygwin install to support ShellBrowser
* Odds and ends on cygwin build
* Redo medley.iss install script to use tar from Windows rather than cygwin tar because cygwin tar was messing up ACLs in windows. Needed to change creation of medley.bat accordingly.
* Remove junk lines from buildLoadup.yml
* Restore accidently deleted line to buildLoadup.yml
* Fix multiple issues with cygwin_installer filename; arrange to remove placeholder.txt from the release assets at the end of cygwin installer
* Change name of job from windows_installer to cygwin_installer
* Fix missing GH_TOKEN is removal of placeholder.txt; fix naming of output file in medley.iss
* Fiddling with getting cygwin-installer name right
* Redoing merge of medley.sh/medley.command to handle the Darwin plus Cygwin cases; is medley.iss recreate symbolic links surrounding the medley.sh script
* Fix typos/syntrax errors in medley.sh/medley.command