mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-28 04:13:36 +00:00
35 lines
976 B
Python
35 lines
976 B
Python
#!/usr/bin/env python3
|
|
"""Add #pragma once to headers that lack any include guard."""
|
|
import os
|
|
import re
|
|
|
|
ROOTS = [
|
|
'Minecraft.World',
|
|
'Minecraft.Client',
|
|
'4J.Render',
|
|
'4J.Input',
|
|
'4J.Profile',
|
|
'4J.Storage',
|
|
]
|
|
|
|
GUARD_RE = re.compile(r'^\s*#\s*(pragma\s+once|ifndef\s+\w)', re.MULTILINE)
|
|
|
|
BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
patched = 0
|
|
|
|
for root in ROOTS:
|
|
for dirpath, _, files in os.walk(os.path.join(BASE, root)):
|
|
for f in files:
|
|
if not f.endswith('.h'):
|
|
continue
|
|
path = os.path.join(dirpath, f)
|
|
try:
|
|
content = open(path, 'r', encoding='utf-8', errors='replace').read()
|
|
except Exception:
|
|
continue
|
|
if not GUARD_RE.search(content):
|
|
open(path, 'w', encoding='utf-8').write('#pragma once\n' + content)
|
|
patched += 1
|
|
|
|
print(f'Patched {patched} headers with #pragma once')
|