#!/usr/bin/env python3 """ Fixes missing newline between 'using StellaOps.TestKit;' and 'namespace'. """ import re import sys from pathlib import Path def fix_file(file_path: Path, dry_run: bool = False) -> bool: """Add newline between using StellaOps.TestKit; and namespace.""" try: content = file_path.read_text(encoding='utf-8-sig') except Exception as e: print(f" Error reading {file_path}: {e}", file=sys.stderr) return False # Pattern: using StellaOps.TestKit;namespace if 'TestKit;namespace' not in content: return False # Fix: Add newline between them fixed = content.replace('TestKit;namespace', 'TestKit;\nnamespace') if not dry_run: encoding = 'utf-8-sig' if content.startswith('\ufeff') else 'utf-8' file_path.write_text(fixed, encoding=encoding) return True def main(): import argparse parser = argparse.ArgumentParser(description='Fix missing newline between using and namespace') parser.add_argument('--path', default='src', help='Path to scan') parser.add_argument('--dry-run', action='store_true', help='Show what would be fixed') args = parser.parse_args() root = Path(args.path) fixed_count = 0 for file_path in root.rglob('*.cs'): if '/obj/' in str(file_path) or '/bin/' in str(file_path): continue if 'node_modules' in str(file_path): continue if fix_file(file_path, dry_run=args.dry_run): print(f"{'Would fix' if args.dry_run else 'Fixed'}: {file_path}") fixed_count += 1 print(f"\nFixed: {fixed_count} files") if __name__ == '__main__': main()