#!/bin/sh set -eu root_dir=$(cd "$(dirname "$0")" && pwd) . "$root_dir/../shared/build-lib.sh" src_html="$root_dir/template.html" output_dir="$root_dir/dist" output_html="$output_dir/tables.html" mkdir -p "$output_dir" ensure_exists "$src_html" css_temp=$(mktemp) js_raw=$(mktemp) js_temp=$(mktemp) cleanup() { rm -f "$css_temp" "$js_raw" "$js_temp"; } trap cleanup EXIT concat_files \ "../shared/fonts.css" \ "../shared/base.css" \ "../shared/toast.css" \ "../shared/elevation.css" \ "../shared/logo.css" \ "../shared/context-menu.css" \ "css/table.css" \ "../form/css/form.css" \ > "$css_temp" # Single bundle hosts both apps. mode.js runs first to set # window.zddcMode based on the URL, then each app's main.js bails # early when its mode isn't selected. Form modules live under # window.formApp; table modules under window.tablesApp; no namespace # collisions. concat_files \ "../shared/vendor/js-yaml.min.js" \ "../shared/zddc.js" \ "../shared/zddc-source.js" \ "../shared/theme.js" \ "../shared/toast.js" \ "../shared/logo.js" \ "../shared/help.js" \ "../shared/elevation.js" \ "../shared/cap.js" \ "../shared/context-menu.js" \ "js/mode.js" \ "js/app.js" \ "js/context.js" \ "js/util.js" \ "js/filters.js" \ "js/sort.js" \ "js/editor.js" \ "js/undo.js" \ "js/add-row.js" \ "js/save.js" \ "js/row-ops.js" \ "js/clipboard.js" \ "js/export.js" \ "js/render.js" \ "js/main.js" \ "../form/js/app.js" \ "../form/js/context.js" \ "../form/js/util.js" \ "../form/js/widgets.js" \ "../form/js/object.js" \ "../form/js/array.js" \ "../form/js/render.js" \ "../form/js/serialize.js" \ "../form/js/errors.js" \ "../form/js/post.js" \ "../form/js/main.js" \ > "$js_raw" escape_js_close_tags "$js_raw" "$js_temp" compute_build_label "tables" "${1:-}" "${2:-}" awk -v css_file="$css_temp" -v js_file="$js_temp" -v build_label="$build_label" -v is_red="$is_red" -v favicon_uri="$favicon_data_uri" ' /\{\{CSS_PLACEHOLDER\}\}/ { while ((getline line < css_file) > 0) print line close(css_file) next } /\{\{JS_PLACEHOLDER\}\}/ { while ((getline line < js_file) > 0) print line close(js_file) next } /\{\{BUILD_LABEL\}\}/ { if (is_red == "1") { gsub(/\{\{BUILD_LABEL\}\}/, "" build_label "") } else { gsub(/\{\{BUILD_LABEL\}\}/, build_label) } print next } /\{\{FAVICON\}\}/ { gsub(/\{\{FAVICON\}\}/, favicon_uri) print next } /