godot/misc/scripts/dotnet_format.py
Raul Santos 97851f0340
Move dotnet-format script to pre-commit
Co-authored-by: Paul Joannon <437025+paulloz@users.noreply.github.com>
2024-03-02 08:25:48 +01:00

31 lines
894 B
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import glob
import os
import sys
# Create dummy generated files.
for path in [
"modules/mono/SdkPackageVersions.props",
]:
os.makedirs(os.path.dirname(path), exist_ok=True)
with open(path, "w") as f:
f.write("<Project />")
# Avoid importing GeneratedIncludes.props.
os.environ["GodotSkipGenerated"] = "true"
# Match all the input files to their respective C# project.
input_files = [os.path.normpath(x) for x in sys.argv]
projects = {
path: [f for f in sys.argv if os.path.commonpath([f, path]) == path]
for path in [os.path.dirname(f) for f in glob.glob("**/*.csproj", recursive=True)]
}
# Run dotnet format on all projects with more than 0 modified files.
for path, files in projects.items():
if len(files) > 0:
command = f"dotnet format {path} --include {' '.join(files)}"
os.system(command)