50 lines
1.2 KiB
Bash
50 lines
1.2 KiB
Bash
#!/usr/bin/env sh
|
|
|
|
# comando sh ../.agent/verificar-linhas.sh || exit 1
|
|
|
|
LIMITE=250
|
|
|
|
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
if [ -d "$SCRIPT_DIR/../.agent" ]; then
|
|
RAIZ=$(cd "$SCRIPT_DIR/.." && pwd)
|
|
else
|
|
RAIZ="$SCRIPT_DIR"
|
|
fi
|
|
|
|
RESULTADO=$(
|
|
find "$RAIZ" \
|
|
-type d \( \
|
|
-name node_modules -o \
|
|
-name .git -o \
|
|
-name dist -o \
|
|
-name .output -o \
|
|
-name .nuxt -o \
|
|
-name .cache -o \
|
|
-name .evidencias -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
|
|
relativo="${arquivo#$RAIZ/}"
|
|
printf "%5s linhas -> %s\n" "$linhas" "$relativo"
|
|
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 a orientação: .agent/global/workflows/codigo-limpo.md (ou /codigo-limpo)\n"
|
|
exit 1
|
|
fi
|
|
|
|
printf "✅ Todos os arquivos dentro do limite de %s linhas.\n" "$LIMITE"
|