#!/bin/bash

run_flake8() {
  local dir=$1
  local msg="Running flake8 in $dir..."

  if (cd "$dir" && flake8 > /dev/null); then
    echo "✅ $msg"
  else
    echo "❌ $msg"
    (cd "$dir" && flake8)
  fi
}

dirs=()

# Collect directories without using mapfile
while IFS= read -r f; do
  dir=$(dirname "$f")
  [[ "$(basename "$dir")" == __* ]] && continue
  dirs+=("$dir")
done < <(find . -type f -name ".flake8")

# Run flake8 linearly
for dir in "${dirs[@]}"; do
  run_flake8 "$dir"
done
