58 lines
1.6 KiB
Python
58 lines
1.6 KiB
Python
#!/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()
|