1234567891011121314151617181920212223242526272829303132333435 |
- #!/usr/bin/env python
- # -*- coding: utf-8 -*-
- import glob
- import os
- import sys
- if len(sys.argv) < 2:
- print("Invalid usage of dotnet_format.py, it should be called with a path to one or multiple files.")
- sys.exit(1)
- # Create dummy generated files, if needed.
- for path in [
- "modules/mono/SdkPackageVersions.props",
- ]:
- if os.path.exists(path):
- continue
- os.makedirs(os.path.dirname(path), exist_ok=True)
- with open(path, "w", encoding="utf-8", newline="\n") as f:
- f.write("<Project />")
- # Avoid importing GeneratedIncludes.props.
- os.environ["GodotSkipGenerated"] = "true"
- # Match all the input files to their respective C# project.
- projects = {
- path: " ".join([f for f in sys.argv[1:] 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 files:
- os.system(f"dotnet format {path} --include {files}")
|