Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

78 lines
1.9 KiB
Bash

#!/bin/bash
# Explode on errors 💥
set -euo pipefail
CWD="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
ROOT="$(cd "$CWD"/.. >/dev/null 2>&1 && pwd)"
PUBLIC_DIR="$ROOT/public"
ASSETS_DIR="$ROOT/assets/web"
# Function to display usage information
usage() {
echo "Usage: $0 [OPTIONS]"
echo "Prepare files for web deployment."
echo
echo "Options:"
echo " -h, --help Display this help message and exit"
echo " -p, --print Print files being copied"
}
# Initialize print_files flag
print_files=false
# Parse command line arguments
while [[ $# -gt 0 ]]; do
case $1 in
--help|-h)
usage
exit 0
;;
--print|-p)
print_files=true
shift
;;
*)
echo "Unknown option: $1"
usage
exit 1
;;
esac
done
# Clean public dir, silently ignore errors
rm -rf "$PUBLIC_DIR" || true
mkdir -p "$PUBLIC_DIR"
# Check if build dir exists and is not empty
BUILD_DIR="$ROOT/app/build/dist/wasmJs/productionExecutable"
if [ ! -d "$BUILD_DIR" ] || [ -z "$(ls -A "$BUILD_DIR")" ]; then
echo "Error: $BUILD_DIR does not exist or is empty."
echo "Please ensure you have built the project before deploying."
echo "Run './gradlew wasmJsBrowserDistribution' to build the project."
exit 1
fi
# Function to copy files with optional printing
copy_files() {
local src="$1"
local dest="$2"
if [ "$print_files" = true ]; then
cp -Rv "$src"/* "$dest"
else
cp -R "$src"/* "$dest"
fi
}
echo "Preparing files for web deployment..."
# Copy build to web dir
echo "Copying $BUILD_DIR to $PUBLIC_DIR..."
copy_files "$BUILD_DIR" "$PUBLIC_DIR"
# Copy web assets as well
echo "Copying $ASSETS_DIR to $PUBLIC_DIR..."
copy_files "$ASSETS_DIR" "$PUBLIC_DIR"
echo "Can now deploy to Firebase using 'firebase deploy --only hosting'"