.agent/verificar-linhas.sh
2026-06-24 16:08:29 -03:00

45 lines
1 KiB
Bash

#!/usr/bin/env sh
# comando sh ../.agent/verificar-linhas.sh [diretorio] || exit 1
LIMITE=250
ALVO="${1:-.}"
if [ ! -d "$ALVO" ]; then
printf "❌ Erro: Diretório alvo '%s' não encontrado.\n" "$ALVO"
exit 1
fi
RESULTADO=$(
find "$ALVO" \
-type d \( \
-name node_modules -o \
-name .git -o \
-name dist -o \
-name build \
\) -prune \
-o \
-type f \( \
-name "*.ts" -o \
-name "*.tsx" -o \
-name "*.vue" -o \
-name "*.css" \
\) \
-print | while IFS= read -r arquivo; do
linhas=$(wc -l < "$arquivo" | tr -d ' ')
if [ "$linhas" -gt "$LIMITE" ]; then
printf "%5s linhas -> %s\n" "$linhas" "$arquivo"
fi
done
)
if [ -n "$RESULTADO" ]; then
echo "$RESULTADO"
VIOLACOES=$(printf '%s\n' "$RESULTADO" | wc -l | tr -d ' ')
printf "\n❌ %s arquivo(s) violam o limite de %s linhas.\n" "$VIOLACOES" "$LIMITE"
printf "\n Resolva usando @ag-refatorar\n\n"
exit 1
fi
printf "✅ Todos os arquivos dentro do limite de %s linhas.\n" "$LIMITE"