diff --git a/common/web/keyboard-processor/build.sh b/common/web/keyboard-processor/build.sh index 527b1e1407..fa62d86402 100755 --- a/common/web/keyboard-processor/build.sh +++ b/common/web/keyboard-processor/build.sh @@ -15,15 +15,6 @@ THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BA # This script runs from its own folder cd "$THIS_SCRIPT_PATH" -action= -function action_failure() { - if [ -n "$action" ]; then - builder_report failure $action - fi -} - -trap action_failure err - ################################ Main script ################################ # Ensures color var use in `builder_describe`'s argument respects the specified @@ -52,7 +43,6 @@ fi # END - Script parameter configuration if builder_has_action configure; then - action=configure verify_npm_setup "$KEYMAN_ROOT/common/web/keyman-version/build.sh" @@ -61,22 +51,16 @@ if builder_has_action configure; then fi if builder_has_action clean; then - action=clean npm run clean - builder_report success clean fi if builder_has_action build; then - action=build npm run tsc -- --build "$THIS_SCRIPT_PATH/src/tsconfig.json" - builder_report success build fi if builder_has_action test; then - action=test - # Build test dependency pushd "$KEYMAN_ROOT/common/web/recorder" ./build.sh diff --git a/common/web/recorder/build.sh b/common/web/recorder/build.sh index b74f5d2697..1b200dcb34 100755 --- a/common/web/recorder/build.sh +++ b/common/web/recorder/build.sh @@ -14,16 +14,6 @@ THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BA . "$KEYMAN_ROOT/resources/shellHelperFunctions.sh" -action= -target= -function action_failure() { - if [ -n "$action" ]; then - builder_report failure $action $target - fi -} - -trap action_failure err - ################################ Main script ################################ @@ -57,9 +47,6 @@ if builder_has_action configure :proctor; then fi if [ $CONFIGURE==true ]; then - action=configure - target=:project - verify_npm_setup "$KEYMAN_ROOT/common/web/keyman-version/build.sh" @@ -69,33 +56,21 @@ if [ $CONFIGURE==true ]; then fi if builder_has_action clean :module; then - action=clean - target=:module npm run tsc -- -b --clean "src/tsconfig.json" - builder_report success clean :module fi if builder_has_action clean :proctor; then - action=clean - target=:module npm run tsc -- -b --clean "$THIS_SCRIPT_PATH/src/nodeProctor.tsconfig.json" - builder_report success clean :proctor fi if builder_has_action build :module; then - action=build - target=:module npm run tsc -- --build "$THIS_SCRIPT_PATH/src/tsconfig.json" - builder_report success build :module fi if builder_has_action build :proctor; then - action=build - target=:proctor npm run tsc -- --build "$THIS_SCRIPT_PATH/src/nodeProctor.tsconfig.json" - builder_report success build :proctor fi \ No newline at end of file diff --git a/common/web/utils/build.sh b/common/web/utils/build.sh index b750ed931c..1418ce09d8 100755 --- a/common/web/utils/build.sh +++ b/common/web/utils/build.sh @@ -11,15 +11,6 @@ THIS_SCRIPT="$(greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null || readlink -f "${BA . "$KEYMAN_ROOT/resources/shellHelperFunctions.sh" -action= -function action_failure() { - if [ -n "$action" ]; then - builder_report failure $action - fi -} - -trap action_failure err - ################################ Main script ################################ builder_describe \ @@ -29,24 +20,19 @@ builder_describe \ builder_parse "$@" if builder_has_action configure; then - action=configure verify_npm_setup - "$THIS_SCRIPT_PATH/build.sh" + "$KEYMAN_ROOT/common/web/keyman-version/build.sh" builder_report success configure fi if builder_has_action clean; then - action=clean npm run clean - builder_report success clean fi if builder_has_action build; then - action=build npm run tsc -- --build "$THIS_SCRIPT_PATH/tsconfig.json" - builder_report success build fi \ No newline at end of file diff --git a/resources/build/build-utils.sh b/resources/build/build-utils.sh index d6b481cd80..84ba86a14b 100755 --- a/resources/build/build-utils.sh +++ b/resources/build/build-utils.sh @@ -348,6 +348,22 @@ _builder_item_is_target() { return 0 } +function _builder_failure_trap() { + local action target + + # Iterate across currently-active actions and report their failures. + for action in "${_builder_current_actions[@]}"; do + if [[ $action =~ : ]]; then + IFS=: read -r action target <<< $action + target=:$target + else + target=:project + fi + + builder_report failure $action $target + done +} + # # Returns 0 if the user has asked to perform action on target on the command line # @@ -687,6 +703,10 @@ builder_parse() { echo "* $e" done fi + + # Now that we've successfully parsed options adhering to the _builder spec, we may activate the + # action_failure trap. (We don't want it active on scripts not yet using said script.) + trap _builder_failure_trap err } _builder_pad() {