OMC version 4.4
Functional changes:
- In the absence of command id for exe_script_file execution, the OMC engine was looking for "main.sh" in the Content/Resources/Scripts/. Now it looks first for
<CommandName>.main.shfirst and then fall back to main.sh if not found, where<CommandName>is the non-dynamicNAMEvalue in command description. - Pre-scan OMC_XXX env variables in ENVIRONMENT_VARIABLES. Placing them in ENVIRONMENT_VARIABLES triggers the same functionality as if the special word or env variable was found in the script body itself.
- propagate the parent context info to subcommand context check to prevent early failures
- Nav dialog settings in command description like: CHOOSE_OBJECT_DIALOG, CHOOSE_FILE_DIALOG, CHOOSE_FOLDER_DIALOG, SAVE_AS_DIALOG or INPUT_DIALOG now imply export of OMC_DLG_CHOOSE_OBJECT_PATH, OMC_DLG_CHOOSE_FILE_PATH, OMC_DLG_CHOOSE_FOLDER_PATH, OMC_DLG_SAVE_AS_PATH and OMC_DLG_INPUT_TEXT even if command description in the plist does not refer to it (but the separate script files may)
- Set OMC env variables in WebKit view as window.omc_env. JavaScript code in WebKit can access the variables at runtime with code like:
const myAppPath = window.omc_env.OMC_APP_BUNDLE_PATH; - Fix app icon problem for end notification dialog
- Add support for bundling relocatable Python runtime in applet bundle. New applet with Python is added to distribution: OMCPythonApplet.app. Apple stopped shipping Python in macOS so this allows us to create self-contained Python applets without the need to install Python on deployment machine.
- Added scripts to aid in applet development: build_applet.sh, thin_distribution.sh, codesign_applet.sh
- Re-implemented omc_popen() with posix_spawn() - this is an internal change to the core process forking function at the co=re of OMC to remove use of deprecated API, which may misbehave in the future macOS releases.
- Improve logic to show nav dialogs on missing file context. Commands expecting a file or directory context - and are executed without files - were not getting nav dialog prompt to select file(s)/dir(s) unless OMC_OBJ_PATH was added explicitly to ENVIRONMENT_VARIABLES in command description. With this change the command description with ACTIVATION_MODE=act_file, act_folder, act_file_or_folder and related does not need to have OMC_OBJ_PATH in env vars to trigger nav dialog on missing file context.
- Other internal changes and unit testing