- Added X-WP-Nonce header to docs API fetch calls in Help page - Fixed build-production.sh to include docs/ folder (changed --exclude='*.md' to --exclude='/*.md') - This allows root-level docs like README.md to be excluded while keeping docs/ folder
107 lines
3.3 KiB
Bash
Executable File
107 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# WooNooW Plugin - Production Build Script
|
|
# This script creates a production-ready zip file of the plugin
|
|
|
|
set -e # Exit on error
|
|
|
|
PLUGIN_NAME="woonoow"
|
|
VERSION=$(grep "Version:" woonoow.php | awk '{print $3}')
|
|
BUILD_DIR="build"
|
|
DIST_DIR="dist"
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
ZIP_NAME="${PLUGIN_NAME}-${VERSION}-${TIMESTAMP}.zip"
|
|
|
|
echo "=========================================="
|
|
echo "WooNooW Production Build"
|
|
echo "=========================================="
|
|
echo "Plugin: ${PLUGIN_NAME}"
|
|
echo "Version: ${VERSION}"
|
|
echo "Timestamp: ${TIMESTAMP}"
|
|
echo "=========================================="
|
|
|
|
# Clean previous builds
|
|
echo "Cleaning previous builds..."
|
|
rm -rf ${BUILD_DIR}
|
|
mkdir -p ${BUILD_DIR}/${PLUGIN_NAME}
|
|
mkdir -p ${DIST_DIR}
|
|
|
|
# Copy plugin files
|
|
echo "Copying plugin files..."
|
|
rsync -av --progress \
|
|
--exclude='node_modules' \
|
|
--exclude='.git' \
|
|
--exclude='.gitignore' \
|
|
--exclude='build' \
|
|
--exclude='dist' \
|
|
--exclude='*.log' \
|
|
--exclude='.DS_Store' \
|
|
--exclude='customer-spa' \
|
|
--exclude='admin-spa' \
|
|
--exclude='examples' \
|
|
--exclude='*.sh' \
|
|
--exclude='/*.md' \
|
|
--exclude='archive' \
|
|
--exclude='test-*.php' \
|
|
--exclude='check-*.php' \
|
|
./ ${BUILD_DIR}/${PLUGIN_NAME}/
|
|
|
|
# Verify production builds exist in source before copying
|
|
echo "Verifying production builds..."
|
|
if [ ! -f "customer-spa/dist/app.js" ]; then
|
|
echo "ERROR: Customer SPA production build not found!"
|
|
echo "Please run: cd customer-spa && npm run build"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f "admin-spa/dist/app.js" ]; then
|
|
echo "ERROR: Admin SPA production build not found!"
|
|
echo "Please run: cd admin-spa && npm run build"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ Customer SPA build verified ($(du -h customer-spa/dist/app.js | cut -f1))"
|
|
echo "✓ Admin SPA build verified ($(du -h admin-spa/dist/app.js | cut -f1))"
|
|
|
|
# Copy only essential SPA build files
|
|
echo "Copying SPA build files..."
|
|
mkdir -p ${BUILD_DIR}/${PLUGIN_NAME}/customer-spa/dist
|
|
mkdir -p ${BUILD_DIR}/${PLUGIN_NAME}/admin-spa/dist
|
|
|
|
# Customer SPA - app.js, app.css, and fonts
|
|
cp customer-spa/dist/app.js ${BUILD_DIR}/${PLUGIN_NAME}/customer-spa/dist/
|
|
cp customer-spa/dist/app.css ${BUILD_DIR}/${PLUGIN_NAME}/customer-spa/dist/
|
|
if [ -d "customer-spa/dist/fonts" ]; then
|
|
cp -r customer-spa/dist/fonts ${BUILD_DIR}/${PLUGIN_NAME}/customer-spa/dist/
|
|
echo "✓ Copied customer-spa fonts"
|
|
fi
|
|
|
|
# Admin SPA - app.js and app.css
|
|
cp admin-spa/dist/app.js ${BUILD_DIR}/${PLUGIN_NAME}/admin-spa/dist/
|
|
cp admin-spa/dist/app.css ${BUILD_DIR}/${PLUGIN_NAME}/admin-spa/dist/
|
|
|
|
echo "✓ Copied customer-spa: app.js ($(du -h customer-spa/dist/app.js | cut -f1)), app.css ($(du -h customer-spa/dist/app.css | cut -f1))"
|
|
echo "✓ Copied admin-spa: app.js ($(du -h admin-spa/dist/app.js | cut -f1)), app.css ($(du -h admin-spa/dist/app.css | cut -f1))"
|
|
|
|
# Create zip file
|
|
echo "Creating zip file..."
|
|
cd ${BUILD_DIR}
|
|
zip -r ../${DIST_DIR}/${ZIP_NAME} ${PLUGIN_NAME} -q
|
|
cd ..
|
|
|
|
# Calculate file size
|
|
FILE_SIZE=$(du -h ${DIST_DIR}/${ZIP_NAME} | cut -f1)
|
|
|
|
echo "=========================================="
|
|
echo "✓ Production build complete!"
|
|
echo "=========================================="
|
|
echo "File: ${DIST_DIR}/${ZIP_NAME}"
|
|
echo "Size: ${FILE_SIZE}"
|
|
echo "=========================================="
|
|
|
|
# Clean up build directory
|
|
echo "Cleaning up..."
|
|
rm -rf ${BUILD_DIR}
|
|
|
|
echo "Done! 🚀"
|