spiegel-keyman/web/source/build_dev_resources.sh

64 lines
No EOL
1.9 KiB
Bash
Executable file

#! /bin/bash
#
# Compiles development-related KeymanWeb resources for use with developing/running tests.
# - the Recorder module (for engine tests)
# - the DOM module (for touch-alias and element-interface tests)
## 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
# Fails the build if a specified file does not exist.
assert ( ) {
if ! [ -f $1 ]; then
fail "Build failed."
exit 1
fi
}
# Ensure the dependencies are downloaded. --no-optional should help block fsevents warnings.
verify_npm_setup
# Definition of global compile constants
SCRIPT_TAGS=( "dev_resources" )
PRODUCTS=( "dev_resources.js")
FOLDERS=( "dev_resources")
OUTPUT_BASE="../release"
PRODUCT_COUNT=${#PRODUCTS[@]}
# COMPILED_FILE="recorder_InputEvents.js"
# SCRIPT_TAG="recorder"
# OUTPUT="../release/recorder"
NODE_SOURCE="source"
ENGINE_TEST_OUTPUT="../unit_tests/"
readonly OUTPUT
readonly NODE_SOURCE
readonly ENGINE_TEST_OUTPUT
# Ensures that we rely first upon the local npm-based install of Typescript.
# (Facilitates automated setup for build agents.)
PATH="../../node_modules/.bin:$PATH"
compiler="npm run tsc --"
compilecmd="$compiler"
for (( n=0; n<$PRODUCT_COUNT; n++ )) # Apparently, args ends up zero-based, meaning $2 => n=1.
do
$compilecmd -p $NODE_SOURCE/tsconfig.${SCRIPT_TAGS[$n]}.json
if [ $? -ne 0 ]; then
fail "Typescript compilation failed for '${SCRIPT_TAGS[$n]}'."
fi
PRODUCT=$OUTPUT_BASE/${FOLDERS[$n]}/${PRODUCTS[$n]}
cp $PRODUCT $ENGINE_TEST_OUTPUT
cp $PRODUCT.map $ENGINE_TEST_OUTPUT
# ###
# target=${args[$n]}
# cp -f $INTERMEDIATE/$target $dest/$target
# cp -f $INTERMEDIATE/$target.map $dest/$target.map
done