142 lines
4 KiB
Bash
Executable file
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
|