spiegel-keyman/core/tools/ldml-const-builder/build.sh
Marc Durdin 9335a82530 maint(core): verify that keyman_core_ldml.h is in sync
Fixes: #15254
Test-bot: skip
Build-bot: skip build:linux,mac,windows
2025-12-01 17:11:57 +01:00

52 lines
2 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Builds /core/include/ldml/keyman_core_ldml.h from /core/include/ldml/keyman_core_ldml.ts
#
## START STANDARD BUILD SCRIPT INCLUDE
# adjust relative paths as necessary
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
. "${THIS_SCRIPT%/*}/../../../resources/build/builder-full.inc.sh"
## END STANDARD BUILD SCRIPT INCLUDE
. "$KEYMAN_ROOT/resources/build/utils.inc.sh"
. "$KEYMAN_ROOT/resources/build/node.inc.sh"
CORE_LDML_H_FILE="../../include/ldml/keyman_core_ldml.h"
CORE_LDML_TS_FILE="../../include/ldml/keyman_core_ldml.ts"
################################ Main script ################################
builder_describe "Build and run the constant builder for LDML" clean configure build run test
builder_parse "$@"
builder_describe_internal_dependency \
run:project build:project \
test:project run:project
builder_describe_outputs \
configure "/node_modules" \
build "/core/include/ldml/ldml-const-builder/ldml-const-builder.js" \
run "/core/include/ldml/ldml-const-builder/run.txt"
function do_run() {
node --enable-source-maps ../../include/ldml/ldml-const-builder/ldml-const-builder.js > ${CORE_LDML_H_FILE}
touch ../../include/ldml/ldml-const-builder/run.txt
echo "Updated ${CORE_LDML_H_FILE}"
}
function do_test() {
if ! git diff --exit-code "${CORE_LDML_H_FILE}"; then
builder_echo error "File ${CORE_LDML_TS_FILE} has changed, but /core/tools/ldml-const-builder has not been run."
builder_echo error "Run ${COLOR_BRIGHT_WHITE}$KEYMAN_ROOT/core/tools/ldml-const-build/build.sh run${COLOR_RESET} and commit changes"
return 1
fi
}
# clean: Not removing ${CORE_LDML_H_FILE} as it is checked in
builder_run_action clean rm -rf ../../include/ldml/build/ ../../include/ldml/ldml-const-builder/ ../../include/ldml/coverage/
builder_run_action configure node_select_version_and_npm_ci
builder_run_action build tsc -b ../../include/ldml/tsconfig.build.json
builder_run_action run do_run
builder_run_action test do_test