mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-06 00:45:32 +00:00
Adds support for :target and --option to the builder_() functions in build-utils.sh, along with a consistent way of describing command line parameters in short-hand form, so we can avoid the display_usage getting out of sync with actual command line parameters. I opted to tweak the existing usage slightly, reversing parameter order for `builder_report`, so that we could extend `builder_report` cleanly to support targets. The new builder_() functions are `builder_describe` and `builder_parse`, which should be used in place for `builder_init` where you want to provide more detailed command-line options (for many scripts, the defaults provided through `builder_init` may suffice). `builder_describe` lets you set a single-line description of the script, along with a list of parameters: `actions`, `:targets` and `--options`. Options may also specify a shorthand form, e.g. `--option,-o`. Each parameter may optionally include a short description, separated by space(s) from the parameter name. build-utils.test.sh tests the functionality of the various functions, and provides some examples of using them. Defaults: * If a target is not specified in `builder_describe`, a standard target of `:project` will be available. * If the user does not pass an action on the command line, then `build` will be used. * If the user does not pass a target on the command line, all targets will have the actions applied. Note, it is possible to have targets which do not use all actions. These may be still be specified, but can be ignored. For example, `test:tools` may not be an action:target that you handle in the script. At this time, the builder_() functions do not attempt to check for this.
32 lines
1.1 KiB
Bash
Executable file
32 lines
1.1 KiB
Bash
Executable file
#! /usr/bin/env bash
|
|
#
|
|
# Compile the KeymanWeb bulk-renderer module for use with developing/running engine tests.
|
|
|
|
set -eu
|
|
|
|
## START STANDARD BUILD SCRIPT INCLUDE
|
|
# adjust relative paths as necessary
|
|
THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BASH_SOURCE[0]}")"
|
|
. "$(dirname "$THIS_SCRIPT")/../../resources/build/build-utils.sh"
|
|
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
|
|
## END STANDARD BUILD SCRIPT INCLUDE
|
|
|
|
set_keyman_standard_build_path
|
|
|
|
################################ Main script ################################
|
|
|
|
builder_describe \
|
|
"Build the bulk renderer project. The bulk renderer loads all the cloud keyboards from api.keyman.com and renders each of them to a document." \
|
|
"configure runs 'npm ci' on root folder" \
|
|
"build (default) builds bulk_renderer to ../release/renderer/"
|
|
builder_parse "$@"
|
|
|
|
if builder_has_action configure; then
|
|
verify_npm_setup
|
|
builder_report success configure
|
|
fi
|
|
|
|
if builder_has_action build; then
|
|
tsc --build "$THIS_SCRIPT_PATH/tsconfig.json" $builder_verbose
|
|
builder_report success build
|
|
fi
|