orto-skills/INSTALL.sh

142 lines
4 KiB
Bash
Executable file

#!/bin/bash
##############################################################################
# INSTALL.sh - Orto Skills Suite Installation
#
# Copia l'intera cartella orto-suite/ in ~/.openclaw/skills/
#
# Usage:
# ./INSTALL.sh
#
# Output:
# - Copia orto-suite/ → ~/.openclaw/skills/orto-suite/
# - Verifica 9 skill + 8 references
# - Symlink references risolti automaticamente
# - Ready for use
##############################################################################
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SOURCE_DIR="$SCRIPT_DIR/orto-suite"
TARGET_DIR="$HOME/.openclaw/skills/orto-suite"
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'
log() {
echo -e "${BLUE}[$(date +'%H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
}
success() {
echo -e "${GREEN}[✓]${NC} $1"
}
warning() {
echo -e "${YELLOW}[⚠]${NC} $1"
}
# ============================================================================
log "=== Orto Skills Suite Installation ==="
# Verifica source directory esiste
if [ ! -d "$SOURCE_DIR" ]; then
error "Source directory not found: $SOURCE_DIR"
exit 1
fi
success "Source directory found: $SOURCE_DIR"
# Crea target directory se non esiste
mkdir -p "$(dirname "$TARGET_DIR")"
# Se target esiste già, chiedi conferma
if [ -d "$TARGET_DIR" ]; then
warning "Target directory already exists: $TARGET_DIR"
read -p "Overwrite? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
log "Backing up existing installation..."
BACKUP_DIR="$TARGET_DIR.backup.$(date +%s)"
mv "$TARGET_DIR" "$BACKUP_DIR"
success "Backup saved: $BACKUP_DIR"
else
log "Installation cancelled"
exit 0
fi
fi
# Copia orto-suite
log "Copying orto-suite to $TARGET_DIR..."
cp -r "$SOURCE_DIR" "$TARGET_DIR"
success "Copied successfully"
# Verifica installation
log "Verifying installation..."
# Count skill directories
SKILL_COUNT=$(find "$TARGET_DIR" -maxdepth 1 -name "orto-*" -type d | wc -l)
log "Found $SKILL_COUNT skill directories"
if [ "$SKILL_COUNT" -lt 9 ]; then
error "Expected 9 skills, found $SKILL_COUNT"
exit 1
fi
# Verifica SKILL.md files
SKILL_MD_COUNT=$(find "$TARGET_DIR" -maxdepth 2 -name "SKILL.md" -type f | wc -l)
log "Found $SKILL_MD_COUNT SKILL.md files"
if [ "$SKILL_MD_COUNT" -lt 9 ]; then
error "Expected 9 SKILL.md files, found $SKILL_MD_COUNT"
exit 1
fi
# Verifica references
if [ ! -d "$TARGET_DIR/references" ]; then
error "References directory not found"
exit 1
fi
REF_COUNT=$(find "$TARGET_DIR/references" -maxdepth 1 -name "*.md" -type f | wc -l)
log "Found $REF_COUNT reference files"
success "Installation verified"
# ============================================================================
echo ""
echo "╔════════════════════════════════════════════════════════════╗"
echo "║ ✅ INSTALLATION COMPLETED SUCCESSFULLY ║"
echo "╚════════════════════════════════════════════════════════════╝"
success "Skills installed: $SKILL_COUNT"
success "Installation directory: $TARGET_DIR"
echo ""
echo "=== INSTALLED SKILLS ==="
find "$TARGET_DIR" -maxdepth 2 -name "SKILL.md" -type f | sort | while read skillmd; do
skilldir=$(dirname "$skillmd")
skillname=$(basename "$skilldir")
echo "$skillname"
done
echo ""
echo "=== NEXT STEPS ==="
echo "1. Create your first garden:"
echo " openclaw invoke $TARGET_DIR/orto-init/SKILL.md --id orto_mytown_001 ..."
echo ""
echo "2. Run onboarding:"
echo " openclaw invoke $TARGET_DIR/orto-onboarding/SKILL.md --orto-id orto_mytown_001"
echo ""
echo "3. Generate full plan:"
echo " openclaw invoke $TARGET_DIR/orto-orchestratore/SKILL.md --orto-id orto_mytown_001"
exit 0