78 lines
1.9 KiB
Bash
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'" |