63 lines
1.9 KiB
Bash
Executable File
63 lines
1.9 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
||
|
||
echo "=== verstak-desktop: install dev plugins ==="
|
||
|
||
# ── locate sibling repo ──
|
||
OFFICIAL_PLUGINS="$ROOT/../verstak-official-plugins"
|
||
if [ ! -d "$OFFICIAL_PLUGINS" ]; then
|
||
echo "❌ sibling repo not found at $OFFICIAL_PLUGINS"
|
||
echo " Expected structure:"
|
||
echo " ../verstak-official-plugins/"
|
||
echo " ../verstak-desktop/ (this repo)"
|
||
exit 1
|
||
fi
|
||
|
||
# ── ensure dist packages exist ──
|
||
DIST_ROOT="$OFFICIAL_PLUGINS/dist"
|
||
if [ ! -d "$DIST_ROOT" ] || [ -z "$(find "$DIST_ROOT" -mindepth 1 -maxdepth 1 -type d 2>/dev/null)" ]; then
|
||
echo " ℹ️ dist packages not found at $DIST_ROOT"
|
||
echo " → Running build.sh in verstak-official-plugins..."
|
||
(cd "$OFFICIAL_PLUGINS" && ./scripts/build.sh)
|
||
echo ""
|
||
if [ ! -d "$DIST_ROOT" ] || [ -z "$(find "$DIST_ROOT" -mindepth 1 -maxdepth 1 -type d 2>/dev/null)" ]; then
|
||
echo "❌ dist packages still missing after build"
|
||
exit 1
|
||
fi
|
||
fi
|
||
|
||
# ── create ./plugins/* from official dist packages ──
|
||
PLUGIN_DIR="$ROOT/plugins"
|
||
echo " → installing official plugins to $PLUGIN_DIR"
|
||
|
||
mkdir -p "$ROOT/plugins"
|
||
|
||
# Clean up any leftover temp directories
|
||
for tmp in "$ROOT"/.official-plugins-tmp.*; do
|
||
[ -d "$tmp" ] && rm -rf "$tmp"
|
||
done
|
||
|
||
# Atomic replace: install to temp then rename
|
||
TMP_DIR=$(mktemp -d "$ROOT/.official-plugins-tmp.XXXXXX")
|
||
cp -r "$DIST_ROOT/"* "$TMP_DIR/"
|
||
# Remove old plugin directories (fix permissions first if needed)
|
||
if [ -d "$PLUGIN_DIR" ]; then
|
||
chmod -R u+rwx "$PLUGIN_DIR" 2>/dev/null || true
|
||
rm -rf "$PLUGIN_DIR"
|
||
fi
|
||
mv "$TMP_DIR" "$PLUGIN_DIR"
|
||
|
||
# ── verify ──
|
||
if [ -d "$PLUGIN_DIR" ]; then
|
||
FILE_COUNT=$(find "$PLUGIN_DIR" -type f | wc -l)
|
||
echo " ✅ installed: $PLUGIN_DIR"
|
||
echo " files: $FILE_COUNT"
|
||
else
|
||
echo "❌ install failed: $PLUGIN_DIR missing"
|
||
exit 1
|
||
fi
|
||
|
||
echo "✅ install-dev-plugins done"
|