#!/bin/bash # 03_generate_packaging.sh — Genera INSTALL.sh e README.md # Solo meccanico: generazione file packaging set -e DIST_DIR="$1" FRAMEWORK_NAME="$(basename "$DIST_DIR" | sed 's/-suite$//')" if [ -z "$DIST_DIR" ] || [ ! -d "$DIST_DIR" ]; then echo "❌ Usage: $0 " exit 1 fi echo "📦 Generazione packaging per: $DIST_DIR" echo "==============================================" # Conta skills e references SKILLS_COUNT=$(find "$DIST_DIR" -mindepth 1 -maxdepth 1 -type d ! -name "references" 2>/dev/null | wc -l | tr -d ' ') REFS_COUNT=$(find "$DIST_DIR/references" -name "*.md" 2>/dev/null | wc -l | tr -d ' ') # Genera INSTALL.sh echo "" echo "### Generazione INSTALL.sh..." cat > "$DIST_DIR/INSTALL.sh" << EOF #!/bin/bash # Installazione ${FRAMEWORK_NAME}-skills SOURCE="\$(cd "\$(dirname "\${BASH_SOURCE[0]}")" && pwd)" TARGET="\$HOME/.openclaw/skills/${FRAMEWORK_NAME}-skills" echo "📦 Installing ${FRAMEWORK_NAME}-skills..." echo "" # Verifica destinazione if [ -d "\$TARGET" ]; then echo "⚠️ Directory esistente: \$TARGET" read -p "Sovrascrivere? (y/N) " confirm if [ "\$confirm" != "y" ]; then echo "❌ Installazione annullata" exit 1 fi rm -rf "\$TARGET" fi # Crea directory parent mkdir -p "\$(dirname "\$TARGET")" # Copia skills cp -r "\$SOURCE" "\$TARGET" echo "✅ Installation complete!" echo "" echo "Skills installate in: \$TARGET" echo "" echo "Skills incluse (${SKILLS_COUNT}):" for skill in "\$TARGET"/*/; do if [ -d "\$skill" ] && [ "\$(basename "\$skill")" != "references" ]; then echo " - \$(basename "\$skill")" fi done EOF chmod +x "$DIST_DIR/INSTALL.sh" echo " ✓ INSTALL.sh generato" # Genera README.md echo "" echo "### Generazione README.md..." cat > "$DIST_DIR/README.md" << EOF # ${FRAMEWORK_NAME}-skills Suite di AgentSkills generate da framework-translator. ## Panoramica - **Skills:** ${SKILLS_COUNT} - **References:** ${REFS_COUNT} - **Lingua:** Da rilevare - **Dominio:** Da rilevare ## Installazione ### Metodo 1: Script Automatico \`\`\`bash ./INSTALL.sh \`\`\` ### Metodo 2: Copia Manuale \`\`\`bash cp -r . ~/.openclaw/skills/${FRAMEWORK_NAME}-skills \`\`\` ## Skills Incluse EOF # Lista skills for skill_dir in "$DIST_DIR"/*/; do if [ -d "$skill_dir" ] && [ "$(basename "$skill_dir")" != "references" ]; then skill_name=$(basename "$skill_dir") echo "- **$skill_name**" >> "$DIST_DIR/README.md" fi done cat >> "$DIST_DIR/README.md" << EOF ## References EOF # Lista references if [ -d "$DIST_DIR/references" ]; then for ref_file in "$DIST_DIR/references"/*.md; do if [ -f "$ref_file" ]; then ref_name=$(basename "$ref_file") echo "- \`$ref_name\`" >> "$DIST_DIR/README.md" fi done fi cat >> "$DIST_DIR/README.md" << EOF --- _Generato da framework-translator il $(date +%Y-%m-%d)_ EOF echo " ✓ README.md generato" echo "" echo "==============================================" echo "✅ Packaging completato" echo "" echo "File generati:" ls -la "$DIST_DIR"/*.sh "$DIST_DIR"/*.md 2>/dev/null || true