#!/usr/bin/env bash # -------------------------------------------------------------- # validar-repositorio.sh – validações rápidas para o projeto AGENT-IA # -------------------------------------------------------------- # 1) Verifica se ainda existem artefatos .md proibidos # 2) Checa se a versão no manifesto.json está no formato semver (X.Y.Z) # 3) Executa verificar-linhas.sh (se disponível) # -------------------------------------------------------------- set -euo pipefail REPO_ROOT="$(cd "$(dirname "$0")" && pwd)" cd "$REPO_ROOT" msg_ok() { echo -e "\e[32m✅ $1\e[0m"; } msg_err() { echo -e "\e[31m❌ $1\e[0m"; } # ---- 1) Busca por arquivos .md proibidos --------------------- forbidden=$(git ls-files "*.md" | grep -vE "(COMERCIAL/|\.ajuda|regras-negocio\.md|dominio-.*\.md|\.docs/adrs|\.git)" || true) if [[ -n "$forbidden" ]]; then msg_err "Arquivos .md proibidos encontrados:" echo "$forbidden" exit 1 else msg_ok "Nenhum arquivo .md proibido encontrado." fi # ---- 2) Validação da versão no manifesto.json --------------- if [[ -f manifesto.json ]]; then version=$(jq -r '.versao // empty' manifesto.json) if [[ "$version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then msg_ok "Versão do manifesto válida: $version" else msg_err "Versão do manifesto inválida ou ausente em manifesto.json" exit 1 fi else msg_err "manifesto.json não encontrado!" exit 1 fi # ---- 3) Verificar limite de linhas (opcional) ---------------- if [[ -x "$REPO_ROOT/verificar-linhas.sh" ]]; then "$REPO_ROOT/verificar-linhas.sh" msg_ok "Limite de linhas verificado." fi exit 0