Some checks failed
Monorepo Pipeline / ⚡ Prioritize Release (push) Successful in 3s
Monorepo Pipeline / 🧹 Lint (push) Has started running
Monorepo Pipeline / 🚀 Release (push) Has been cancelled
Monorepo Pipeline / 🧪 Test (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Directus (Base) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Gatekeeper (Product) (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Build-Base (push) Has been cancelled
Monorepo Pipeline / 🏗️ Build (push) Has been cancelled
Monorepo Pipeline / 🐳 Build Production Runtime (push) Has been cancelled
77 lines
2.2 KiB
Bash
Executable File
77 lines
2.2 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Configuration
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
EXTENSIONS_ROOT="$REPO_ROOT/packages"
|
|
TARGET_DIR="$REPO_ROOT/packages/cms-infra/extensions"
|
|
|
|
# List of extensions to sync - including modules and endpoints
|
|
EXTENSIONS=(
|
|
"acquisition"
|
|
"acquisition-manager"
|
|
"company-manager"
|
|
"customer-manager"
|
|
"feedback-commander"
|
|
"people-manager"
|
|
"unified-dashboard"
|
|
)
|
|
|
|
echo "🚀 Starting extension sync..."
|
|
|
|
# Ensure target directory exists
|
|
mkdir -p "$TARGET_DIR"
|
|
|
|
# Build the acquisition library first so extensions use the updated build
|
|
echo "📦 Building acquisition-library..."
|
|
(cd "$REPO_ROOT/packages/acquisition-library" && pnpm build)
|
|
|
|
for EXT in "${EXTENSIONS[@]}"; do
|
|
EXT_PATH="$EXTENSIONS_ROOT/$EXT"
|
|
|
|
if [ -d "$EXT_PATH" ]; then
|
|
echo "📦 Building $EXT..."
|
|
|
|
# Build the extension
|
|
# We use --if-present to avoid errors if build script is missing
|
|
(cd "$EXT_PATH" && pnpm build)
|
|
|
|
# Create target directory for this extension
|
|
# Directus expects extensions to be in subdirectories matching their name
|
|
mkdir -p "$TARGET_DIR/$EXT"
|
|
|
|
echo "🚚 Syncing $EXT to $TARGET_DIR/$EXT..."
|
|
|
|
# Clean target first to avoid ghost files
|
|
rm -rf "${TARGET_DIR:?}/$EXT"/*
|
|
|
|
# Copy build artifacts and package metadata
|
|
# Some extensions have index.js in root after build, some use dist/
|
|
# We check for index.js and package.json
|
|
if [ -f "$EXT_PATH/index.js" ]; then
|
|
cp "$EXT_PATH/index.js" "$TARGET_DIR/$EXT/"
|
|
fi
|
|
|
|
if [ -f "$EXT_PATH/package.json" ]; then
|
|
cp "$EXT_PATH/package.json" "$TARGET_DIR/$EXT/"
|
|
fi
|
|
|
|
if [ -d "$EXT_PATH/dist" ]; then
|
|
cp -r "$EXT_PATH/dist" "$TARGET_DIR/$EXT/"
|
|
fi
|
|
|
|
# Sync node_modules if they exist (sometimes needed if not everything is bundled)
|
|
# Deactivated: Causes global scope pollution and login issues in Directus
|
|
# if [ -d "$EXT_PATH/node_modules" ]; then
|
|
# echo "📚 Syncing node_modules for $EXT..."
|
|
# rsync -aL --delete "$EXT_PATH/node_modules/" "$TARGET_DIR/$EXT/node_modules/"
|
|
# fi
|
|
|
|
echo "✅ $EXT synced."
|
|
else
|
|
echo "❌ Extension source not found: $EXT_PATH"
|
|
fi
|
|
done
|
|
|
|
echo "✨ Extension sync complete!"
|