feat(okf-hub): relocar tooling OKF do Hub para Dev/Scripts (regra: scripts fora do vault)
This commit is contained in:
Executable
+103
@@ -0,0 +1,103 @@
|
||||
#!/bin/bash
|
||||
# okf-rename-index.sh — Fase 2: Renomeia INDEX.md → index.md no vault Hub
|
||||
# OKF §6: index.md é ficheiro reservado (lowercase)
|
||||
# Criado: 28-06-2026
|
||||
|
||||
HUB="/media/ealmeida/Dados/Hub"
|
||||
DRY_RUN=false
|
||||
LOG_FILE="$(dirname "$0")/okf-rename-index.log"
|
||||
|
||||
# Modo dry-run com --dry-run
|
||||
if [[ "$1" == "--dry-run" ]]; then
|
||||
DRY_RUN=true
|
||||
echo "[DRY-RUN] Nenhum ficheiro será alterado."
|
||||
fi
|
||||
|
||||
echo "=== okf-rename-index.sh — $(date -I) ===" | tee "$LOG_FILE"
|
||||
echo "Hub: $HUB" | tee -a "$LOG_FILE"
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
|
||||
COUNT=0
|
||||
ERRORS=0
|
||||
|
||||
# Encontrar todos os INDEX.md excluindo .stversions e node_modules
|
||||
while IFS= read -r -d '' INDEX_FILE; do
|
||||
DIR=$(dirname "$INDEX_FILE")
|
||||
TARGET="$DIR/index.md"
|
||||
|
||||
# Verificar se já existe index.md (colisão)
|
||||
if [[ -f "$TARGET" ]]; then
|
||||
echo "[SKIP] Colisão: $TARGET já existe — manter INDEX.md" | tee -a "$LOG_FILE"
|
||||
((ERRORS++))
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ "$DRY_RUN" == "true" ]]; then
|
||||
echo "[DRY] $INDEX_FILE → $TARGET" | tee -a "$LOG_FILE"
|
||||
else
|
||||
# Usar git mv para preservar histórico
|
||||
if git -C "$HUB" mv "${INDEX_FILE#$HUB/}" "${TARGET#$HUB/}" 2>>"$LOG_FILE"; then
|
||||
echo "[OK] $INDEX_FILE → $TARGET" | tee -a "$LOG_FILE"
|
||||
else
|
||||
echo "[ERRO] Falha: $INDEX_FILE" | tee -a "$LOG_FILE"
|
||||
((ERRORS++))
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
((COUNT++))
|
||||
|
||||
done < <(find "$HUB" -name "INDEX.md" \
|
||||
-not -path "*/.stversions/*" \
|
||||
-not -path "*/node_modules/*" \
|
||||
-not -path "*/99-Arquivo/*" \
|
||||
-print0)
|
||||
|
||||
# Incluir 99-Arquivo separadamente (sem git mv — só rename simples)
|
||||
while IFS= read -r -d '' INDEX_FILE; do
|
||||
DIR=$(dirname "$INDEX_FILE")
|
||||
TARGET="$DIR/index.md"
|
||||
|
||||
if [[ -f "$TARGET" ]]; then
|
||||
echo "[SKIP] Colisão: $TARGET já existe" | tee -a "$LOG_FILE"
|
||||
((ERRORS++))
|
||||
continue
|
||||
fi
|
||||
|
||||
if [[ "$DRY_RUN" == "true" ]]; then
|
||||
echo "[DRY-ARQUIVO] $INDEX_FILE → $TARGET" | tee -a "$LOG_FILE"
|
||||
else
|
||||
if mv "$INDEX_FILE" "$TARGET" 2>>"$LOG_FILE"; then
|
||||
echo "[OK-ARQUIVO] $INDEX_FILE → $TARGET" | tee -a "$LOG_FILE"
|
||||
else
|
||||
echo "[ERRO-ARQUIVO] $INDEX_FILE" | tee -a "$LOG_FILE"
|
||||
((ERRORS++))
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
((COUNT++))
|
||||
|
||||
done < <(find "$HUB/99-Arquivo" -name "INDEX.md" \
|
||||
-not -path "*/.stversions/*" \
|
||||
-print0)
|
||||
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
echo "=== Resultado ===" | tee -a "$LOG_FILE"
|
||||
echo "Renomeados: $COUNT" | tee -a "$LOG_FILE"
|
||||
echo "Erros/Colisoes: $ERRORS" | tee -a "$LOG_FILE"
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
|
||||
if [[ "$DRY_RUN" == "false" && $COUNT -gt 0 ]]; then
|
||||
echo "=== Actualizar referencias internas ===" | tee -a "$LOG_FILE"
|
||||
# Substituir [INDEX.md] e (INDEX.md) por index.md nas referencias
|
||||
grep -rl "INDEX\.md" "$HUB" \
|
||||
--include="*.md" \
|
||||
--exclude-dir=".stversions" \
|
||||
--exclude-dir="node_modules" | while read -r FILE; do
|
||||
sed -i 's/\bINDEX\.md\b/index.md/g' "$FILE"
|
||||
echo "[REF] $FILE" >> "$LOG_FILE"
|
||||
done
|
||||
echo "Referencias actualizadas — ver log para detalhes." | tee -a "$LOG_FILE"
|
||||
fi
|
||||
|
||||
echo "" | tee -a "$LOG_FILE"
|
||||
echo "Log: $LOG_FILE"
|
||||
Reference in New Issue
Block a user