mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-03-09 06:27:21 -04:00
90 lines
2.7 KiB
Bash
Executable File
90 lines
2.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# MediaCMS Moodle Plugin Suite - Build Script
|
|
# Creates distributable ZIP package
|
|
|
|
set -e # Exit on error
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}======================================${NC}"
|
|
echo -e "${GREEN}MediaCMS Moodle Plugin Suite Builder${NC}"
|
|
echo -e "${GREEN}======================================${NC}"
|
|
echo
|
|
|
|
# Configuration
|
|
VERSION="1.0.0"
|
|
BUILD_DATE=$(date +%Y%m%d)
|
|
PACKAGE_NAME="mediacms-moodle-v${VERSION}"
|
|
DIST_DIR="dist"
|
|
BUILD_DIR="${DIST_DIR}/${PACKAGE_NAME}"
|
|
|
|
# Create clean dist directory
|
|
echo -e "${YELLOW}→${NC} Cleaning dist directory..."
|
|
rm -rf "${DIST_DIR}"
|
|
mkdir -p "${BUILD_DIR}"
|
|
|
|
# Copy filter plugin
|
|
echo -e "${YELLOW}→${NC} Copying filter plugin..."
|
|
mkdir -p "${BUILD_DIR}/filter"
|
|
cp -r filter/mediacms "${BUILD_DIR}/filter/"
|
|
|
|
# Copy TinyMCE plugin
|
|
echo -e "${YELLOW}→${NC} Copying TinyMCE plugin..."
|
|
mkdir -p "${BUILD_DIR}/lib/editor/tiny/plugins"
|
|
cp -r tiny/mediacms "${BUILD_DIR}/lib/editor/tiny/plugins/"
|
|
|
|
# Copy documentation
|
|
echo -e "${YELLOW}→${NC} Copying documentation..."
|
|
cp README.md "${BUILD_DIR}/filter/mediacms/"
|
|
cp INSTALL.txt "${BUILD_DIR}/filter/mediacms/"
|
|
|
|
# Clean up development files
|
|
echo -e "${YELLOW}→${NC} Removing development files..."
|
|
find "${BUILD_DIR}" -type d -name "node_modules" -exec rm -rf {} + 2>/dev/null || true
|
|
find "${BUILD_DIR}" -type f -name ".DS_Store" -delete 2>/dev/null || true
|
|
find "${BUILD_DIR}" -type f -name "*.log" -delete 2>/dev/null || true
|
|
find "${BUILD_DIR}" -type d -name ".git" -exec rm -rf {} + 2>/dev/null || true
|
|
find "${BUILD_DIR}" -type f -name ".gitignore" -delete 2>/dev/null || true
|
|
|
|
# Remove AMD source files (keep only built versions)
|
|
echo -e "${YELLOW}→${NC} Cleaning AMD source files..."
|
|
find "${BUILD_DIR}/lib/editor/tiny/plugins/mediacms/amd" -type f -name "*.js" ! -name "*-lazy.js" ! -path "*/build/*" -delete 2>/dev/null || true
|
|
|
|
# Create ZIP archive
|
|
echo -e "${YELLOW}→${NC} Creating ZIP archive..."
|
|
cd "${BUILD_DIR}"
|
|
zip -r "../${PACKAGE_NAME}.zip" . -q
|
|
cd ../..
|
|
|
|
# Create checksum
|
|
echo -e "${YELLOW}→${NC} Generating checksum..."
|
|
cd "${DIST_DIR}"
|
|
sha256sum "${PACKAGE_NAME}.zip" > "${PACKAGE_NAME}.zip.sha256"
|
|
cd ..
|
|
|
|
# Display results
|
|
ZIP_SIZE=$(du -h "${DIST_DIR}/${PACKAGE_NAME}.zip" | cut -f1)
|
|
echo
|
|
echo -e "${GREEN}✓ Build complete!${NC}"
|
|
echo
|
|
echo "Package: ${DIST_DIR}/${PACKAGE_NAME}.zip"
|
|
echo "Size: ${ZIP_SIZE}"
|
|
echo "Checksum: ${DIST_DIR}/${PACKAGE_NAME}.zip.sha256"
|
|
echo
|
|
echo -e "${YELLOW}Contents:${NC}"
|
|
echo " - filter/mediacms/ (includes docs)"
|
|
echo " - lib/editor/tiny/plugins/mediacms/"
|
|
echo
|
|
echo -e "${GREEN}Ready for distribution!${NC}"
|
|
echo
|
|
|
|
# Show checksum
|
|
echo -e "${YELLOW}SHA256 Checksum:${NC}"
|
|
cat "${DIST_DIR}/${PACKAGE_NAME}.zip.sha256"
|
|
echo
|