# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-FileCopyrightText: 2011-2024 Blender Authors # import os import sys import worker.blender import worker.utils def make_format(builder: worker.blender.CodeBuilder) -> bool: os.chdir(builder.blender_dir) # Always run formatting with scripts from main, for security on unverified patches. # TODO: how secure is this? How to test formatting issues in the scripts themselves? # main_files = [makefile, "tools/utils_maintenance", "build_files/windows"] # for main_file in main_files: # worker.utils.call(['git', 'checkout', 'origin/main', '--', main_file]) # Run format if builder.platform == "windows": builder.call(["make.bat", "format"]) else: builder.call(["make", "-f", "GNUmakefile", "format"]) # Check for changes diff = worker.utils.check_output(["git", "diff"]) if len(diff) > 0: print(diff) # Reset worker.utils.call(["git", "checkout", "HEAD", "--", "."]) if len(diff) > 0: worker.utils.error('Incorrect formatting detected, run "make format" to fix') return False return True def lint(builder: worker.blender.CodeBuilder) -> None: ok = make_format(builder) if not ok: sys.exit(1)