1
0
mirror of synced 2026-01-12 00:42:56 +00:00

16 Commits

Author SHA1 Message Date
Frank Halasz
a4b9099b80
Extensive loadup scripts revamp (#2111)
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.
2025-04-26 16:24:04 -07:00
Frank Halasz
354c7f035a Update all loadup scripts so that 3 things: 1) call subscripts with /bin/sh so that exec bit need not be set on any loadup script, 2) call medley via scripts/medley/medley.command rather than just medley so that the top-level medley symbolic link is not necessary for loadups and 3) no longer require that the loadup scripts run while cwd is MEDLEYDIR and instead determine MEDLEYDIR from where the loadup script is executed from 2024-05-17 23:53:35 -07:00
Frank Halasz
415a698df5
Overhaul of loadup scripts (#1699)
* 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
2024-05-09 21:31:27 -07:00
Frank Halasz
db084c6281
Add copy-full.sh to loadup-full.sh script to copy loadup products from the tmp directory into MEDLEYDIR/loadups - make loadup-full akin to loadup-all (#1359) 2023-10-18 20:53:24 -07:00
Frank Halasz
f514dd04c2 First full pass at loadups revamp. 2023-08-01 22:59:01 -07:00
Larry Masinter
2120f5f458 loadup and run-medley script bug fixes 2022-07-16 11:51:58 -07:00
Larry Masinter
d6f7ad7de9
run-medley improvements (#476) 2021-09-13 05:54:31 -07:00
Larry Masinter
0e2e16f183
changes from #453 redone: NOGREET for run-medley, dummy HOME LOGINDIR for loadups (#464) 2021-09-09 22:26:06 -07:00
Larry Masinter
b18d16b807
fixes Issue #375 -- make 'loadup-full' start with loadups/lisp.sysout (#379) 2021-08-02 20:16:09 -07:00
Larry Masinter
0a5ff04393
Use .CM to loadup full, to avoid GREET call (#322) 2021-05-01 20:43:14 -07:00
Larry Masinter
607d9ab2e7
Add a brief sanity check to loadup process (#314)
Each step of the loadup now starts with a 'touch' to create a timestamp. At the end of the loadup, it makes sure the files needed by the next step are newer. This will catch some of the problems.
2021-04-28 17:15:35 -07:00
Larry Masinter
3e6e104d86
Main cleanup of new init process, scripts, etc (#243) 2021-03-08 22:36:27 -08:00
Larry Masinter
b14cbb2f77 typo in -gr instead of -g 2021-02-18 12:29:23 -08:00
Larry Masinter
7b1c12989f run-medley -prog option for selecting ldeinit; update screen dimensions 2021-02-18 10:22:46 -08:00
Larry Masinter
9143c29cca Push to get new loadups for making an init, loadup a lisp and then a full 2021-02-14 00:08:37 -08:00
Larry Masinter
c3d89a7f34
move loadup scripts + part of initial phase of cleanup (#174) 2021-02-11 16:35:41 -08:00