mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-07 22:47:29 +00:00
feat(common): builder_-managed failure-trap
This commit is contained in:
parent
256b21f691
commit
2bea392baa
4 changed files with 21 additions and 56 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue