From 8fd3442fe2becad820eca53d80431a66cd40afae Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Wed, 27 Jul 2022 15:07:12 +1000 Subject: [PATCH] chore(common): remove builder_init builder_init was unnecessarily and inconsistently duplicating builder_describe and builder_parse functionality. Removing it -- all scripts should use builder_describe and builder_parse instead, which gives us more flexibility and consistency into the future. --- common/web/keyman-version/build.sh | 3 ++- common/web/lm-worker/build.sh | 6 +++++- resources/build/build-utils.sh | 22 +--------------------- resources/build/build-utils.test.sh | 7 ++++--- 4 files changed, 12 insertions(+), 26 deletions(-) diff --git a/common/web/keyman-version/build.sh b/common/web/keyman-version/build.sh index 7c4d72f244..74c68238e0 100755 --- a/common/web/keyman-version/build.sh +++ b/common/web/keyman-version/build.sh @@ -19,7 +19,8 @@ cd "$(dirname "$THIS_SCRIPT")" ################################ Main script ################################ -builder_init "configure clean build test" "$@" +builder_describe "Build the include script for current Keyman version" configure clean build test +builder_parse "$@" # TODO: build if out-of-date if test is specified # TODO: configure if npm has not been run, and build is specified diff --git a/common/web/lm-worker/build.sh b/common/web/lm-worker/build.sh index f91348e1ba..ff106f0beb 100755 --- a/common/web/lm-worker/build.sh +++ b/common/web/lm-worker/build.sh @@ -74,7 +74,11 @@ wrap-worker-code ( ) { ################################ Main script ################################ -builder_init "configure clean build test" "$@" +builder_describe \ + "Compiles the Language Modeling Layer for common use in predictive text and autocorrective applications." \ + configure clean build test + +builder_parse "$@" # TODO: build if out-of-date if test is specified # TODO: configure if npm has not been run, and build is specified diff --git a/resources/build/build-utils.sh b/resources/build/build-utils.sh index 3b9c699578..ae61362e45 100755 --- a/resources/build/build-utils.sh +++ b/resources/build/build-utils.sh @@ -433,7 +433,7 @@ _builder_get_default_description() { configure) description="install dependencies, e.g. npm" ;; build) description="build target(s)" ;; test) description="run automated tests" ;; - ":project") description="this project" ;; + :project) description="this project" ;; :app) description="main app" ;; :engine) description="engine module" ;; :module) description="this module" ;; @@ -443,26 +443,6 @@ _builder_get_default_description() { echo "$description" } -# Initializes a build.sh script, parses command line. Will abort the script if -# invalid parameters are passed in. This is a shorthand for builder_describe -# followed by builder_parse, useful for simple scripts which don't need -# additional detail in parameters or multiple targets. -# -# Usage: -# builder_init "action1 action2" "$@" -# Parameters -# 1: _builder_actions space-separated list of possible actions -# 2: $@ command-line arguments -builder_init() { - _builder_actions=($1) - _builder_targets=(:project) - _builder_options=() - declare -A -g _builder_params - declare -A -g _builder_options_short - shift - builder_parse "$@" -} - # Initializes a build.sh script, parses command line. Will abort the script if # invalid parameters are passed in. Use together with builder_describe which # sets up the possible command line parameters diff --git a/resources/build/build-utils.test.sh b/resources/build/build-utils.test.sh index 08cc3c7e26..941796beba 100755 --- a/resources/build/build-utils.test.sh +++ b/resources/build/build-utils.test.sh @@ -10,11 +10,12 @@ THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BA . "$KEYMAN_ROOT/resources/shellHelperFunctions.sh" -# Shorthand builder_init +# First up, test the simple case with a default :project target -builder_init "clean build" "build" +builder_describe - clean build +builder_parse "build" if [[ "${_builder_chosen_action_targets[@]}" != "build:project" ]]; then - fail " Test: builder_init, shorthand form 'build' should give us 'build:project" + fail " Test: builder_parse, shorthand form 'build' should give us 'build:project" fi if builder_has_action build; then