📋 Commit iniziale con: - ✅ Documentazione unificata in docs/ - ✅ Codice Laravel in netgescon-laravel/ - ✅ Script automazione in scripts/ - ✅ Configurazione sync rsync - ✅ Struttura organizzata e pulita 🔄 Versione: 2025.07.19-1644 🎯 Sistema pronto per Git distribuito
260 lines
7.3 KiB
Bash
Executable File
260 lines
7.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Script Bash per Unificazione Documentazione NetGescon
|
|
# Data: 18/07/2025
|
|
# Scopo: Unificare tutte le cartelle docs sparse in una struttura organizzata
|
|
|
|
echo "🔧 NETGESCON - UNIFICAZIONE DOCUMENTAZIONE (Linux)"
|
|
echo "=================================================="
|
|
|
|
BASE_DIR="$HOME/netgescon"
|
|
UNIFIED_DIR="$BASE_DIR/DOCS-UNIFIED"
|
|
DOCS_MAIN="$BASE_DIR/docs"
|
|
DOCS_LARAVEL="$BASE_DIR/netgescon-laravel/docs"
|
|
|
|
echo ""
|
|
echo "📁 Verifica esistenza cartelle..."
|
|
|
|
if [ ! -d "$DOCS_MAIN" ]; then
|
|
echo "❌ Cartella $DOCS_MAIN non trovata"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$DOCS_LARAVEL" ]; then
|
|
echo "❌ Cartella $DOCS_LARAVEL non trovata"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Cartelle sorgente verificate"
|
|
|
|
# Crea o pulisce struttura unificata
|
|
if [ -d "$UNIFIED_DIR" ]; then
|
|
echo "🗑️ Pulizia cartella esistente..."
|
|
rm -rf "$UNIFIED_DIR"
|
|
fi
|
|
|
|
mkdir -p "$UNIFIED_DIR"
|
|
echo "✅ Creata cartella unificata: $UNIFIED_DIR"
|
|
|
|
echo ""
|
|
echo "📋 FASE 1: Copia da docs principale"
|
|
|
|
# 00-NAVIGAZIONE
|
|
NAV_DIR="$UNIFIED_DIR/00-NAVIGAZIONE"
|
|
mkdir -p "$NAV_DIR"
|
|
echo " 📂 00-NAVIGAZIONE..."
|
|
|
|
if [ -f "$BASE_DIR/00-INDICE-MASTER-NETGESCON.md" ]; then
|
|
cp "$BASE_DIR/00-INDICE-MASTER-NETGESCON.md" "$NAV_DIR/"
|
|
echo " ✅ 00-INDICE-MASTER-NETGESCON.md"
|
|
fi
|
|
|
|
# 01-MANUALI-OPERATIVI
|
|
MANUAL_DIR="$UNIFIED_DIR/01-MANUALI-OPERATIVI"
|
|
mkdir -p "$MANUAL_DIR"
|
|
echo " 📂 01-MANUALI-OPERATIVI..."
|
|
|
|
for file in "00-MANUALE-COMPLETO-NETGESCON-UNIFICATO.md" "RIEPILOGO-FINALE-SESSIONE-17-07-2025.md"; do
|
|
if [ -f "$DOCS_MAIN/$file" ]; then
|
|
cp "$DOCS_MAIN/$file" "$MANUAL_DIR/"
|
|
echo " ✅ $file"
|
|
fi
|
|
done
|
|
|
|
if [ -d "$DOCS_MAIN/manuals" ]; then
|
|
cp -r "$DOCS_MAIN/manuals"/* "$MANUAL_DIR/" 2>/dev/null || true
|
|
echo " ✅ Cartella manuals/*"
|
|
fi
|
|
|
|
# 02-DOCUMENTAZIONE-TECNICA
|
|
TECH_DIR="$UNIFIED_DIR/02-DOCUMENTAZIONE-TECNICA"
|
|
mkdir -p "$TECH_DIR"
|
|
echo " 📂 02-DOCUMENTAZIONE-TECNICA..."
|
|
|
|
for file in "04-DATABASE-STRUTTURE.md" "05-INTERFACCIA-UNIVERSALE.md" "06-SISTEMA-MULTI-RUOLO.md" "08-FRONTEND-UX.md"; do
|
|
if [ -f "$DOCS_MAIN/$file" ]; then
|
|
cp "$DOCS_MAIN/$file" "$TECH_DIR/"
|
|
echo " ✅ $file"
|
|
fi
|
|
done
|
|
|
|
# 04-LOGS-SVILUPPO
|
|
LOGS_DIR="$UNIFIED_DIR/04-LOGS-SVILUPPO"
|
|
mkdir -p "$LOGS_DIR"
|
|
echo " 📂 04-LOGS-SVILUPPO..."
|
|
|
|
for file in "RIEPILOGO-MODULARIZZAZIONE.md" "LISTA-FILE-BACKUP.md"; do
|
|
if [ -f "$DOCS_MAIN/$file" ]; then
|
|
cp "$DOCS_MAIN/$file" "$LOGS_DIR/"
|
|
echo " ✅ $file"
|
|
fi
|
|
done
|
|
|
|
if [ -d "$DOCS_MAIN/logs" ]; then
|
|
cp -r "$DOCS_MAIN/logs"/* "$LOGS_DIR/" 2>/dev/null || true
|
|
echo " ✅ Cartella logs/*"
|
|
fi
|
|
|
|
# 07-API-SPECS
|
|
API_DIR="$UNIFIED_DIR/07-API-SPECS"
|
|
mkdir -p "$API_DIR"
|
|
echo " 📂 07-API-SPECS..."
|
|
|
|
for file in "07-API-INTEGRAZIONI.md" "05-SINCRONIZZAZIONE-AMBIENTE.md"; do
|
|
if [ -f "$DOCS_MAIN/$file" ]; then
|
|
cp "$DOCS_MAIN/$file" "$API_DIR/"
|
|
echo " ✅ $file"
|
|
fi
|
|
done
|
|
|
|
if [ -d "$DOCS_MAIN/api" ]; then
|
|
cp -r "$DOCS_MAIN/api"/* "$API_DIR/" 2>/dev/null || true
|
|
echo " ✅ Cartella api/*"
|
|
fi
|
|
|
|
# 08-CHECKLISTS-TODO
|
|
CHECK_DIR="$UNIFIED_DIR/08-CHECKLISTS-TODO"
|
|
mkdir -p "$CHECK_DIR"
|
|
echo " 📂 08-CHECKLISTS-TODO..."
|
|
|
|
if [ -d "$DOCS_MAIN/checklists" ]; then
|
|
cp -r "$DOCS_MAIN/checklists"/* "$CHECK_DIR/" 2>/dev/null || true
|
|
echo " ✅ Cartella checklists/*"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📋 FASE 2: Copia da docs Laravel"
|
|
|
|
# 03-ARCHITETTURA-SISTEMA
|
|
ARCH_DIR="$UNIFIED_DIR/03-ARCHITETTURA-SISTEMA"
|
|
mkdir -p "$ARCH_DIR"
|
|
echo " 📂 03-ARCHITETTURA-SISTEMA..."
|
|
|
|
for file in "ARCHITETTURA_MODULARE_COMPLETATA.md" "RIEPILOGO_ARCHITETTURA_COMPLETATA.md" "PROTOCOLLO_COMUNICAZIONE.md" "sidebar-modulare.md"; do
|
|
if [ -f "$DOCS_LARAVEL/$file" ]; then
|
|
cp "$DOCS_LARAVEL/$file" "$ARCH_DIR/"
|
|
echo " ✅ $file"
|
|
fi
|
|
done
|
|
|
|
# Aggiungi manuali da Laravel
|
|
for file in "PROCEDURA_OPERATIVA.md" "personalizzazione-tema.md" "miki.md"; do
|
|
if [ -f "$DOCS_LARAVEL/$file" ]; then
|
|
cp "$DOCS_LARAVEL/$file" "$MANUAL_DIR/"
|
|
echo " ✅ $file (da Laravel)"
|
|
fi
|
|
done
|
|
|
|
if [ -f "$DOCS_LARAVEL/QUICK_REFERENCE.md" ]; then
|
|
cp "$DOCS_LARAVEL/QUICK_REFERENCE.md" "$NAV_DIR/QUICK_REFERENCE_LARAVEL.md"
|
|
echo " ✅ QUICK_REFERENCE_LARAVEL.md"
|
|
fi
|
|
|
|
# Copia guide e specifiche
|
|
if [ -d "$DOCS_LARAVEL/guide" ]; then
|
|
mkdir -p "$TECH_DIR/guide-laravel"
|
|
cp -r "$DOCS_LARAVEL/guide"/* "$TECH_DIR/guide-laravel/" 2>/dev/null || true
|
|
echo " ✅ Cartella guide/*"
|
|
fi
|
|
|
|
if [ -d "$DOCS_LARAVEL/specifiche" ]; then
|
|
mkdir -p "$TECH_DIR/specifiche-laravel"
|
|
cp -r "$DOCS_LARAVEL/specifiche"/* "$TECH_DIR/specifiche-laravel/" 2>/dev/null || true
|
|
echo " ✅ Cartella specifiche/*"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📋 FASE 3: Script e materiali aggiuntivi"
|
|
|
|
# 05-MIGRAZIONE-LINUX
|
|
MIGRATION_DIR="$UNIFIED_DIR/05-MIGRAZIONE-LINUX"
|
|
mkdir -p "$MIGRATION_DIR"
|
|
echo " 📂 05-MIGRAZIONE-LINUX..."
|
|
|
|
if [ -f "$BASE_DIR/GUIDA-UNIFICAZIONE-DOCS.md" ]; then
|
|
cp "$BASE_DIR/GUIDA-UNIFICAZIONE-DOCS.md" "$MIGRATION_DIR/"
|
|
echo " ✅ GUIDA-UNIFICAZIONE-DOCS.md"
|
|
fi
|
|
|
|
# 06-SCRIPTS-TOOLS
|
|
SCRIPTS_DIR="$UNIFIED_DIR/06-SCRIPTS-TOOLS"
|
|
mkdir -p "$SCRIPTS_DIR"
|
|
echo " 📂 06-SCRIPTS-TOOLS..."
|
|
|
|
if ls "$BASE_DIR/netgescon-laravel"/*.sh 1> /dev/null 2>&1; then
|
|
cp "$BASE_DIR/netgescon-laravel"/*.sh "$SCRIPTS_DIR/" 2>/dev/null || true
|
|
echo " ✅ Script da netgescon-laravel/*"
|
|
fi
|
|
|
|
if [ -d "$BASE_DIR/scripts" ]; then
|
|
cp -r "$BASE_DIR/scripts"/* "$SCRIPTS_DIR/" 2>/dev/null || true
|
|
echo " ✅ Cartella scripts/*"
|
|
fi
|
|
|
|
echo ""
|
|
echo "📋 FASE 4: Creazione indice e inventario"
|
|
|
|
# Indice master
|
|
cat > "$UNIFIED_DIR/00-INDICE-DOCUMENTAZIONE-UNIFICATA.md" << 'EOF'
|
|
# 📚 NETGESCON - DOCUMENTAZIONE UNIFICATA
|
|
## 🧭 Indice Master della Documentazione Completa
|
|
|
|
> **🎯 ENTRY POINT UNICO** per tutta la documentazione NetGescon
|
|
|
|
## 🗂️ STRUTTURA ORGANIZZATA
|
|
|
|
### 📋 00-NAVIGAZIONE - Punti di accesso e guide rapide
|
|
### 🛠️ 01-MANUALI-OPERATIVI - Guide pratiche per l'uso
|
|
### 🔧 02-DOCUMENTAZIONE-TECNICA - Specifiche e implementazione
|
|
### 🏗️ 03-ARCHITETTURA-SISTEMA - Architettura e design
|
|
### 📝 04-LOGS-SVILUPPO - Storia e tracking sviluppo
|
|
### 🐧 05-MIGRAZIONE-LINUX - Guide migrazione e setup Linux
|
|
### ⚙️ 06-SCRIPTS-TOOLS - Script e strumenti automazione
|
|
### 📡 07-API-SPECS - Specifiche API e integrazioni
|
|
### ✅ 08-CHECKLISTS-TODO - Task e checklist
|
|
|
|
---
|
|
*📝 Documentazione unificata NetGescon*
|
|
EOF
|
|
|
|
echo " ✅ Indice master creato"
|
|
|
|
# Inventario
|
|
INVENTORY_FILE="$UNIFIED_DIR/INVENTARIO-UNIFICAZIONE.md"
|
|
cat > "$INVENTORY_FILE" << EOF
|
|
# 📋 INVENTARIO UNIFICAZIONE DOCUMENTAZIONE
|
|
**Data:** $(date '+%d/%m/%Y %H:%M')
|
|
**Script:** unify-docs-netgescon-linux.sh
|
|
|
|
## 📁 CARTELLE UNIFICATE:
|
|
- \`$DOCS_MAIN\`
|
|
- \`$DOCS_LARAVEL\`
|
|
|
|
## 📊 STATISTICHE:
|
|
EOF
|
|
|
|
for dir in "$UNIFIED_DIR"/*; do
|
|
if [ -d "$dir" ]; then
|
|
DIR_NAME=$(basename "$dir")
|
|
FILE_COUNT=$(find "$dir" -type f 2>/dev/null | wc -l)
|
|
echo "- **$DIR_NAME**: $FILE_COUNT file" >> "$INVENTORY_FILE"
|
|
fi
|
|
done
|
|
|
|
echo " ✅ Inventario creato"
|
|
|
|
echo ""
|
|
echo "✅ UNIFICAZIONE COMPLETATA!"
|
|
echo "📂 Documentazione unificata in: $UNIFIED_DIR"
|
|
|
|
TOTAL_FILES=$(find "$UNIFIED_DIR" -type f 2>/dev/null | wc -l)
|
|
TOTAL_SIZE=$(du -sh "$UNIFIED_DIR" 2>/dev/null | cut -f1)
|
|
|
|
echo ""
|
|
echo "📊 STATISTICHE FINALI:"
|
|
echo "📄 File totali: $TOTAL_FILES"
|
|
echo "💾 Dimensione: $TOTAL_SIZE"
|
|
|
|
echo ""
|
|
echo "🎯 DOCUMENTAZIONE PRONTA PER VS CODE E COPILOT!"
|