Files
handoff-pro/deploy.sh

67 lines
2.0 KiB
Bash

#!/bin/bash
# Deploy Handoff Pro to Tom's workspace on GW-2
# Usage: ./deploy.sh [--dry-run]
set -e
CONTAINER="openclaw-repo-openclaw-gateway-2-1"
TARGET="/home/node/.openclaw/workspace/agents/tom/skills/handoff-pro"
SOURCE="$(cd "$(dirname "$0")" && pwd)"
DRY_RUN=""
if [ "$1" = "--dry-run" ]; then DRY_RUN="echo [DRY-RUN]"; fi
echo "=== Handoff Pro Deployment ==="
echo "Source: $SOURCE"
echo "Target: $CONTAINER:$TARGET"
echo ""
# Create target directory
$DRY_RUN docker exec $CONTAINER mkdir -p $TARGET/{scripts,lib,templates,data,tests}
# Copy core files
for f in SKILL.md server.py; do
$DRY_RUN docker cp "$SOURCE/$f" "$CONTAINER:$TARGET/$f"
done
# Copy lib
for f in "$SOURCE"/lib/*.py; do
$DRY_RUN docker cp "$f" "$CONTAINER:$TARGET/lib/$(basename $f)"
done
# Copy scripts
for f in "$SOURCE"/scripts/*.py; do
$DRY_RUN docker cp "$f" "$CONTAINER:$TARGET/scripts/$(basename $f)"
done
# Copy templates
for f in "$SOURCE"/templates/*; do
[ -f "$f" ] && $DRY_RUN docker cp "$f" "$CONTAINER:$TARGET/templates/$(basename $f)"
done
# Fix permissions (no world-writable)
$DRY_RUN docker exec $CONTAINER find $TARGET -type f -exec chmod 644 {} \;
$DRY_RUN docker exec $CONTAINER find $TARGET -type d -exec chmod 755 {} \;
$DRY_RUN docker exec $CONTAINER chown -R node:node $TARGET
# Initialize database
$DRY_RUN docker exec -u node $CONTAINER python3 $TARGET/scripts/init_db.py
# Add to mcporter config
$DRY_RUN docker exec -u node $CONTAINER sh -c "
CONFIG=/home/node/.openclaw/workspace/config/mcporter.json
python3 -c \"
import json
with open('\$CONFIG') as f: cfg = json.load(f)
cfg['mcpServers']['handoff-pro'] = {'url': 'http://127.0.0.1:3101/sse'}
with open('\$CONFIG','w') as f: json.dump(cfg, f, indent=4)
print('mcporter.json updated')
\"
"
echo ""
echo "=== Deployment complete ==="
echo "Next steps:"
echo " 1. Start the MCP server: docker exec -u node -d $CONTAINER python3 $TARGET/server.py"
echo " 2. Verify: docker exec $CONTAINER curl -s http://127.0.0.1:3101/health"
echo " 3. Test: mcporter call handoff-pro.list_catalogs"