63 lines
2.0 KiB
Bash
Executable File
63 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# Build script to embed admin.html into the worker
|
|
|
|
set -e
|
|
|
|
echo "=================================================="
|
|
echo "Building Worker with Embedded Admin Panel"
|
|
echo "=================================================="
|
|
echo ""
|
|
|
|
# Get the directory where this script is located
|
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
|
|
|
cd "$PROJECT_DIR"
|
|
|
|
# Check if admin.html exists
|
|
if [ ! -f "worker/admin.html" ]; then
|
|
echo "✗ admin.html not found in worker directory"
|
|
exit 1
|
|
fi
|
|
|
|
# Read admin.html and escape it for JavaScript
|
|
ADMIN_HTML=$(cat worker/admin.html | sed 's/\\/\\\\/g' | sed 's/`/\\`/g' | sed 's/\$/\\$/g')
|
|
|
|
# Create the embedded version
|
|
echo "Creating worker with embedded admin HTML..."
|
|
|
|
# Read the enhanced worker
|
|
WORKER_CONTENT=$(cat worker/video-server-enhanced.js)
|
|
|
|
# Replace the placeholder getAdminHTML function
|
|
# We'll create a new version that includes the actual HTML
|
|
|
|
cat > worker/video-server-final.js << 'WORKER_START'
|
|
/**
|
|
* Enhanced Cloudflare Worker for serving videos from R2 storage
|
|
* Features:
|
|
* - Admin panel with authentication
|
|
* - Video visibility controls (private, shareable, clip_shareable)
|
|
* - Clip generation and serving
|
|
* - Permission-based access control
|
|
*/
|
|
|
|
WORKER_START
|
|
|
|
# Append the admin HTML as a constant
|
|
echo "const ADMIN_HTML = \`" >> worker/video-server-final.js
|
|
cat worker/admin.html >> worker/video-server-final.js
|
|
echo "\`;" >> worker/video-server-final.js
|
|
echo "" >> worker/video-server-final.js
|
|
|
|
# Append the rest of the worker code, but skip the getAdminHTML placeholder
|
|
cat worker/video-server-enhanced.js | sed -n '/^export default/,$p' | \
|
|
sed 's/async function getAdminHTML() {/async function getAdminHTML() { return ADMIN_HTML; } \/\/ OLD VERSION: {/g' >> worker/video-server-final.js
|
|
|
|
echo "✓ Created video-server-final.js with embedded admin HTML"
|
|
echo ""
|
|
echo "To use this version:"
|
|
echo " cp worker/video-server-final.js worker/video-server.js"
|
|
echo " cd worker && wrangler deploy"
|
|
echo ""
|