#!/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! 🚀"