#!/usr/bin/env bash set -euo pipefail repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" single_build_dir="${WEB_ENGINE_SINGLE_BUILD_DIR:-${repo_root}/build_web-single}" pthread_build_dir="${WEB_ENGINE_PTHREAD_BUILD_DIR:-${repo_root}/build_web-pthread}" public_root="${WEB_ENGINE_PUBLIC_ROOT:-${repo_root}/web/app/public}" manifest_path="${WEB_ENGINE_MANIFEST_PATH:-${public_root}/engine-manifest.json}" if [[ "$(realpath -m "${single_build_dir}")" == "$(realpath -m "${pthread_build_dir}")" ]]; then echo "single and pthread variants must come from independent build directories" >&2 exit 1 fi for build_dir in "${single_build_dir}" "${pthread_build_dir}"; do test -s "${build_dir}/web_engine.js" test -s "${build_dir}/web_engine.wasm" done test -s "${manifest_path}" staging_dir="$(mktemp -d "${TMPDIR:-/tmp}/blender-web-engine-install.XXXXXX")" trap 'rm -rf "${staging_dir}"' EXIT for variant in single pthread; do mkdir -p "${staging_dir}/vendor/blender/${variant}" done cp "${single_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/single/web_engine.js" cp "${single_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/single/web_engine.wasm" cp "${pthread_build_dir}/web_engine.js" "${staging_dir}/vendor/blender/pthread/web_engine.js" cp "${pthread_build_dir}/web_engine.wasm" "${staging_dir}/vendor/blender/pthread/web_engine.wasm" cp "${manifest_path}" "${staging_dir}/engine-manifest.json" node "${repo_root}/tools/web/update-engine-manifest.mjs" \ "${staging_dir}/engine-manifest.json" \ "${staging_dir}/vendor/blender/single" \ "${staging_dir}/vendor/blender/pthread" node "${repo_root}/tools/web/check-manifest-assets.mjs" \ "${staging_dir}/engine-manifest.json" "${staging_dir}" for variant in single pthread; do mkdir -p "${public_root}/vendor/blender/${variant}" install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.js" \ "${public_root}/vendor/blender/${variant}/web_engine.js" install -m 0644 "${staging_dir}/vendor/blender/${variant}/web_engine.wasm" \ "${public_root}/vendor/blender/${variant}/web_engine.wasm" done install -m 0644 "${staging_dir}/engine-manifest.json" "${manifest_path}" sha256sum \ "${public_root}/vendor/blender/single/web_engine.js" \ "${public_root}/vendor/blender/single/web_engine.wasm" \ "${public_root}/vendor/blender/pthread/web_engine.js" \ "${public_root}/vendor/blender/pthread/web_engine.wasm"