mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-26 03:04:31 +00:00 
			
		
		
		
	
		
			
	
	
		
			52 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			52 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | #!/usr/bin/env python | ||
|  | # -*- coding: utf-8 -*- | ||
|  | 
 | ||
|  | import sys | ||
|  | 
 | ||
|  | if len(sys.argv) < 2: | ||
|  |     print("Invalid usage of file_format.py, it should be called with a path to one or multiple files.") | ||
|  |     sys.exit(1) | ||
|  | 
 | ||
|  | BOM = b"\xef\xbb\xbf" | ||
|  | 
 | ||
|  | changed = [] | ||
|  | invalid = [] | ||
|  | 
 | ||
|  | for file in sys.argv[1:]: | ||
|  |     try: | ||
|  |         with open(file, "rt", encoding="utf-8") as f: | ||
|  |             original = f.read() | ||
|  |     except UnicodeDecodeError: | ||
|  |         invalid.append(file) | ||
|  |         continue | ||
|  | 
 | ||
|  |     if original == "": | ||
|  |         continue | ||
|  | 
 | ||
|  |     EOL = "\r\n" if file.endswith((".csproj", ".sln", ".bat")) or file.startswith("misc/msvs") else "\n" | ||
|  |     WANTS_BOM = file.endswith((".csproj", ".sln")) | ||
|  | 
 | ||
|  |     revamp = EOL.join([line.rstrip("\n\r\t ") for line in original.splitlines(True)]).rstrip(EOL) + EOL | ||
|  | 
 | ||
|  |     new_raw = revamp.encode(encoding="utf-8") | ||
|  |     if not WANTS_BOM and new_raw.startswith(BOM): | ||
|  |         new_raw = new_raw[len(BOM) :] | ||
|  |     elif WANTS_BOM and not new_raw.startswith(BOM): | ||
|  |         new_raw = BOM + new_raw | ||
|  | 
 | ||
|  |     with open(file, "rb") as f: | ||
|  |         old_raw = f.read() | ||
|  | 
 | ||
|  |     if old_raw != new_raw: | ||
|  |         changed.append(file) | ||
|  |         with open(file, "wb") as f: | ||
|  |             f.write(new_raw) | ||
|  | 
 | ||
|  | if changed: | ||
|  |     for file in changed: | ||
|  |         print(f"FIXED: {file}") | ||
|  | if invalid: | ||
|  |     for file in invalid: | ||
|  |         print(f"REQUIRES MANUAL CHANGES: {file}") | ||
|  |     sys.exit(1) |