mirror of
https://github.com/keymanapp/keyman.git
synced 2026-10-26 07:47:47 +00:00
Note: there is a bit of potential confusion about the difference between /resources/builder.inc.sh (the full implementation for builder scripts), and /resources/build/builder.inc.sh (the source script that builder scripts should always use). This allows us to make assumptions that will always be true for builder scripts that may not be true for other scripts, such as setting base folder.
125 lines
No EOL
3.4 KiB
Bash
Executable file
125 lines
No EOL
3.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
## START STANDARD BUILD SCRIPT INCLUDE
|
|
# adjust relative paths as necessary
|
|
THIS_SCRIPT="$(readlink -f "${BASH_SOURCE[0]}")"
|
|
. "${THIS_SCRIPT%/*}/../../../resources/build/builder.inc.sh"
|
|
## END STANDARD BUILD SCRIPT INCLUDE
|
|
|
|
. "$KEYMAN_ROOT/resources/shellHelperFunctions.sh"
|
|
|
|
# Imports common Web build-script definitions & functions
|
|
. "$KEYMAN_ROOT/web/common.inc.sh"
|
|
|
|
# ################################ Main script ################################
|
|
|
|
builder_describe "Builds the Keyman Engine for Web's sample page setups." \
|
|
"@/web/src/app/browser build" \
|
|
"@/web/src/app/ui build" \
|
|
"configure Does nothing for this project" \
|
|
"clean" \
|
|
"build" \
|
|
"test Does nothing for this project" \
|
|
"--ci Does nothing for this project"
|
|
|
|
# Possible TODO?s
|
|
# "upload-symbols Uploads build product to Sentry for error report symbolification. Only defined for $DOC_BUILD_EMBED_WEB" \
|
|
|
|
builder_parse "$@"
|
|
|
|
builder_describe_outputs \
|
|
build /web/src/samples/simplest/keymanweb.js
|
|
|
|
#### Common paths ####
|
|
|
|
KMW_JS="$KEYMAN_ROOT/web/build/app/browser/release/keymanweb.js"
|
|
KMW_MAP="$KEYMAN_ROOT/web/build/app/browser/release/keymanweb.js.map"
|
|
UI_ROOT="$KEYMAN_ROOT/web/build/app/ui/release"
|
|
RESOURCES="$KEYMAN_ROOT/web/build/app/resources/."
|
|
|
|
SAMPLE_BASE="$KEYMAN_ROOT/web/src/samples"
|
|
|
|
#### Build action definitions ####
|
|
|
|
do_clean() {
|
|
# Sample 1
|
|
rm -f "$SAMPLE_BASE/simplest/keymanweb.js"
|
|
rm -f "$SAMPLE_BASE/simplest/keymanweb.js.map"
|
|
rm -f "$SAMPLE_BASE/simplest/kmwuitoggle.js"
|
|
rm -f "$SAMPLE_BASE/simplest/kmwuitoggle.js.map"
|
|
rm -rf "$SAMPLE_BASE/simplest/osk"
|
|
rm -rf "$SAMPLE_BASE/simplest/ui"
|
|
|
|
# Sample 2
|
|
rm -rf "$SAMPLE_BASE/subfolder_toggle/keyman"
|
|
|
|
# Sample 3
|
|
rm -rf "$SAMPLE_BASE/subfolder_toolbar/keyman"
|
|
|
|
# Sample 4
|
|
rm -rf "$SAMPLE_BASE/complex/root/js"
|
|
rm -rf "$SAMPLE_BASE/complex/root/resources"
|
|
}
|
|
|
|
builder_run_action clean do_clean
|
|
|
|
#
|
|
# Copies all relevant scripts to the specified folder for use with a sample page.
|
|
#
|
|
# ### Usage
|
|
#
|
|
# ```bash
|
|
# copy_scripts "$SAMPLE_BASE/sample1/keyman_root" "kmwuitoggle.js"
|
|
# ```
|
|
#
|
|
# ### Parameters
|
|
#
|
|
# * 1: `dest` the destination folder to receive script copies
|
|
# * 2: `uiModule` name of the UI module file to copy over (optional)
|
|
#
|
|
# ### Example
|
|
#
|
|
copy_scripts() {
|
|
UI=
|
|
if [[ $# -ge 2 ]]; then
|
|
UI=$2
|
|
echo $UI
|
|
fi
|
|
DEST=$1
|
|
|
|
mkdir -p "$DEST"
|
|
cp "$KMW_JS" "$DEST"
|
|
cp "$KMW_MAP" "$DEST"
|
|
|
|
if [[ $# -ge 2 ]]; then
|
|
cp "$UI_ROOT/$UI" "$DEST"
|
|
cp "$UI_ROOT/$UI.map" "$DEST"
|
|
fi
|
|
}
|
|
|
|
copy_resources() {
|
|
DEST=$1
|
|
mkdir -p "$DEST"
|
|
|
|
cp -R "$RESOURCES" "$DEST"
|
|
}
|
|
|
|
do_copy() {
|
|
# "simplest" - all relevant files are compatible with default init, same folder as page
|
|
copy_scripts "$SAMPLE_BASE/simplest/" "kmwuitoggle.js"
|
|
copy_resources "$SAMPLE_BASE/simplest/"
|
|
|
|
# "subfolder_toggle" - all relevant files are compatible with default init, in direct subfolder
|
|
copy_scripts "$SAMPLE_BASE/subfolder_toggle/keyman/" "kmwuitoggle.js"
|
|
copy_resources "$SAMPLE_BASE/subfolder_toggle/keyman/"
|
|
|
|
# "subfolder_toolbar" - all relevant files are compatible with default init, in direct subfolder
|
|
copy_scripts "$SAMPLE_BASE/subfolder_toolbar/keyman/" "kmwuitoolbar.js"
|
|
copy_resources "$SAMPLE_BASE/subfolder_toolbar/keyman/"
|
|
|
|
# "complex"
|
|
copy_scripts "$SAMPLE_BASE/complex/root/js/" "kmwuitoggle.js"
|
|
copy_resources "$SAMPLE_BASE/complex/root/resources/"
|
|
}
|
|
|
|
builder_run_action build do_copy |