#!/usr/bin/env bash
# Add error handling to scripts missing it
# Adds set -euo pipefail to scripts that don't have it

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "$SCRIPT_DIR/../.." && pwd)"

cd "$PROJECT_ROOT"

count=0
while IFS= read -r -d '' file; do
    # Skip if already has error handling
    if head -5 "$file" | grep -q "set -"; then
        continue
    fi
    
    # Skip library files (they may intentionally not have error handling)
    if [[ "$file" =~ /lib/ ]]; then
        continue
    fi
    
    # Find line after shebang
    line_num=2
    if head -1 "$file" | grep -q "^#!"; then
        # Check if line 2 is empty or a comment
        if sed -n '2p' "$file" | grep -qE '^[[:space:]]*$|^[[:space:]]*#'; then
            # Find first non-empty, non-comment line
            line_num=$(awk '/^[^#[:space:]]/ {print NR; exit}' "$file")
        fi
    fi
    
    # Insert error handling
    sed -i "${line_num}i set -euo pipefail" "$file"
    ((count++)) || true
done < <(find scripts -name "*.sh" -type f -print0)

echo "✅ Added error handling to $count scripts"

